/* ============================
   CATTELYA LYS — DARK LUXE UI (v2)
   - 3 doors + subpages
   - premium glow
   - themed primary buttons (subpages)
   - social premium hover
   - soft fade-in
   - focus premium
   ============================ */

:root{
  --bg: #090910;
  --card: rgba(255,255,255,.055);
  --card2: rgba(255,255,255,.085);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.62);
  --border: rgba(255,255,255,.12);
  --shadow: 0 18px 55px rgba(0,0,0,.55);
  --radius: 22px;
}

/* Reset / base */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  color:var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  background:
    radial-gradient(900px 650px at 15% 0%, rgba(255,255,255,.09), transparent 60%),
    radial-gradient(900px 650px at 85% 10%, rgba(255,255,255,.06), transparent 60%),
    radial-gradient(900px 650px at 50% 120%, rgba(255,255,255,.05), transparent 55%),
    var(--bg);
}

a{color:inherit;text-decoration:none}

/* Layout */
.wrap{
  width:min(760px, 92vw);
  margin: 26px auto 44px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

/* Premium fade-in */
@keyframes softIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.wrap{ animation: softIn .45s ease both; }
@media (prefers-reduced-motion: reduce){
  .wrap{ animation: none; }
}

.card{
  background: linear-gradient(180deg, var(--card2), var(--card));
  border:1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  backdrop-filter: blur(10px);
}

/* Hero */
.hero{
  display:flex;
  gap:14px;
  align-items:center;
  padding:16px;
}

.avatar{
  width:72px;height:72px;
  border-radius: 18px;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.14);
}

.title h1{
  margin:0;
  font-size: 1.42rem;
  letter-spacing:.2px;
}
.tagline{
  margin:.25rem 0 0;
  color: var(--muted);
  font-size: .98rem;
}

/* Notice */
.notice{
  padding: 12px 16px;
  color: rgba(255,255,255,.86);
}
.notice .muted{color:var(--muted)}

/* Doors */
.doors{
  display:grid;
  grid-template-columns: 1fr;
  gap:12px;
}

.door{
  position: relative;
  overflow: hidden;
  padding: 14px 16px;
  border-radius: 18px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.045);
  transition: transform .20s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.door:hover{
  transform: translateY(-1px);
}

/* subtle highlight layer */
.door::after{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius: 18px;
  pointer-events:none;
  opacity:0;
  transition: opacity .25s ease;
  background: radial-gradient(600px 220px at 20% 0%,
    rgba(255,255,255,.10),
    transparent 60%);
}
.door:hover::after{ opacity:1; }

/* Primary (mise en avant) */
.primary{
  background: linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.06));
  border-color: rgba(255,255,255,.22);
}

/* Door content */
.top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.kicker{
  font-weight:600;
  font-size:1.05rem;
}
.badge{
  font-size:.88rem;
  color: rgba(255,255,255,.78);
  border:1px solid var(--border);
  background: rgba(255,255,255,.04);
  padding:6px 10px;
  border-radius: 999px;
}
.sub{
  margin-top:6px;
  color: var(--muted);
  font-size:.95rem;
}

/* ============================
   COLOR ACCENTS (doors hover)
   (uses !important so it wins over .primary)
   ============================ */

/* 🔒 Univers privé */
.door.private:hover{
  background: linear-gradient(135deg, rgba(150,60,90,.25), rgba(90,30,55,.14)) !important;
  border-color: rgba(150,60,90,.45) !important;
  box-shadow: 0 0 28px rgba(150,60,90,.28), 0 12px 30px rgba(0,0,0,.35) !important;
}

/* 💼 Académie financière */
.door.academy:hover{
  background: linear-gradient(135deg, rgba(210,180,90,.25), rgba(160,130,60,.14)) !important;
  border-color: rgba(210,180,90,.45) !important;
  box-shadow: 0 0 28px rgba(210,180,90,.24), 0 12px 30px rgba(0,0,0,.35) !important;
}

/* 🕯️ Bougies */
.door.candles:hover{
  background: linear-gradient(135deg, rgba(190,120,60,.25), rgba(140,80,40,.14)) !important;
  border-color: rgba(190,120,60,.45) !important;
  box-shadow: 0 0 28px rgba(190,120,60,.24), 0 12px 30px rgba(0,0,0,.35) !important;
}

/* Footer */
.footer{
  padding: 14px 16px;
  text-align:center;
}
.divider{
  height:1px;
  background: rgba(255,255,255,.10);
  margin: 10px 0;
}
.muted{color:var(--muted)}
.small{font-size:.9rem}

/* Social chips */
.grid{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap:10px;
}

.chip{
  padding: 12px;
  border-radius: 14px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.05);
  transition: all .25s ease;
}

/* Instagram */
.chip.instagram:hover{
  background: linear-gradient(135deg, rgba(225,48,108,.18), rgba(193,53,132,.10));
  box-shadow: 0 0 22px rgba(225,48,108,.25);
}

/* Telegram */
.chip.telegram:hover{
  background: linear-gradient(135deg, rgba(36,161,222,.18), rgba(36,161,222,.10));
  box-shadow: 0 0 22px rgba(36,161,222,.25);
}

/* Email */
.chip.email:hover{
  background: rgba(255,255,255,.10);
  box-shadow: 0 0 18px rgba(255,255,255,.18);
}

/* ============================
   SUBPAGES: back + list + btn
   ============================ */

.back{
  display:inline-flex;
  gap:8px;
  align-items:center;
  text-decoration:none;
  padding:10px 12px;
  border-radius: 14px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.04);
  width: fit-content;
  transition: all .25s ease;
}
.back:hover{
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.18);
  transform: translateY(-1px);
}

.list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top: 8px;
}

.btn{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding: 14px 16px;
  border-radius: 16px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.05);
  color: var(--text);
  text-decoration:none;
  transition: transform .12s ease, background .12s ease, border-color .12s ease, box-shadow .12s ease;
}

.btn:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.075);
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 12px 30px rgba(0,0,0,.35);
}

.btn:active{transform: translateY(0px)}
.btn .sub{color:var(--muted); font-size:.94rem}

/* Default primary for subpages */
.btn.primary{
  background: linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.06));
  border-color: rgba(255,255,255,.22);
}
.btn.primary:hover{
  background: linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.09));
  border-color: rgba(255,255,255,.26);
}

/* ============================
   THEME BUTTONS (subpages)
   ============================ */

.theme-private .btn.primary{
  background: linear-gradient(135deg, rgba(150,60,90,.26), rgba(90,30,55,.14));
  border-color: rgba(150,60,90,.45);
  box-shadow: 0 0 22px rgba(150,60,90,.18);
}
.theme-private .btn.primary:hover{
  box-shadow: 0 0 28px rgba(150,60,90,.28), 0 12px 30px rgba(0,0,0,.35);
}

.theme-academy .btn.primary{
  background: linear-gradient(135deg, rgba(210,180,90,.24), rgba(160,130,60,.14));
  border-color: rgba(210,180,90,.45);
  box-shadow: 0 0 22px rgba(210,180,90,.16);
}
.theme-academy .btn.primary:hover{
  box-shadow: 0 0 28px rgba(210,180,90,.24), 0 12px 30px rgba(0,0,0,.35);
}

.theme-candles .btn.primary{
  background: linear-gradient(135deg, rgba(190,120,60,.24), rgba(140,80,40,.14));
  border-color: rgba(190,120,60,.45);
  box-shadow: 0 0 22px rgba(190,120,60,.16);
}
.theme-candles .btn.primary:hover{
  box-shadow: 0 0 28px rgba(190,120,60,.24), 0 12px 30px rgba(0,0,0,.35);
}

/* ============================
   PREMIUM FOCUS (accessible + luxe)
   ============================ */

.chip:focus,
.chip:focus-visible,
.door:focus,
.door:focus-visible,
.btn:focus,
.btn:focus-visible,
.back:focus,
.back:focus-visible{
  outline: none;
}

.chip:focus-visible,
.door:focus-visible,
.btn:focus-visible,
.back:focus-visible{
  box-shadow: 0 0 0 2px rgba(255,255,255,.14), 0 0 22px rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.22);
}

/* Responsive */
@media (min-width:720px){
  .doors{grid-template-columns: repeat(3,1fr);}
}
@media (max-width:520px){
  .grid{grid-template-columns:1fr;}
  .avatar{width:64px;height:64px}
}
/* ============================
   PREMIUM BADGES (18+ / Méthodes / Boutique)
   ============================ */

/* Base badge (un peu plus premium) */
.badge{
  backdrop-filter: blur(6px);
  font-weight: 500;
}

/* 🔞 18+ — rouge/bordeaux premium */
.door.private .badge{
  color: rgba(255,210,220,.95);
  border-color: rgba(150,60,90,.45);
  background: linear-gradient(
    135deg,
    rgba(150,60,90,.35),
    rgba(90,30,55,.20)
  );
  box-shadow: 0 0 14px rgba(150,60,90,.25);
}

/* 💼 Méthodes — or / champagne */
.door.academy .badge{
  color: rgba(255,245,215,.95);
  border-color: rgba(210,180,90,.45);
  background: linear-gradient(
    135deg,
    rgba(210,180,90,.30),
    rgba(160,130,60,.18)
  );
  box-shadow: 0 0 14px rgba(210,180,90,.22);
}

/* 🕯️ Boutique — ambre / cuivre */
.door.candles .badge{
  color: rgba(255,235,215,.95);
  border-color: rgba(190,120,60,.45);
  background: linear-gradient(
    135deg,
    rgba(190,120,60,.32),
    rgba(140,80,40,.18)
  );
  box-shadow: 0 0 14px rgba(190,120,60,.22);
}
/* ============================
   LUXE BACKGROUND IMAGE (subtle, premium)
   Place image at: /assets/bg.jpg
   ============================ */

body{
  position: relative;
}

/* Image + overlays via pseudo elements */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: url("/assets/bg.jpg") center/cover no-repeat;

  /* COULEUR PRÉSERVÉE */
  filter: brightness(.65) contrast(1.05) saturate(1.05);
}


/* Overlay + vignette (la clé du "dark luxe") */
body::after{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -1;

  background:
    radial-gradient(900px 520px at 50% 10%, rgba(255,255,255,.06), transparent 60%),
    radial-gradient(1100px 700px at 50% 120%, rgba(255,255,255,.05), transparent 60%),
    radial-gradient(1200px 800px at 50% 40%, rgba(0,0,0,.25), rgba(0,0,0,.68) 65%, rgba(0,0,0,.82) 100%),
    linear-gradient(180deg, rgba(0,0,0,.60), rgba(0,0,0,.78));

  /* optionnel : très léger blur d'ambiance (souvent magnifique) */
  backdrop-filter: blur(2px);
}

/* Optionnel : un micro-grain ultra premium (si tu aimes)
   -> si tu ne veux pas, supprime ce bloc. */
.wrap::before{
  content:"";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  opacity: .045;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}
/* FIX stacking context pour que le fond image s'affiche partout */
body{
  position: relative;
  z-index: 0;           /* IMPORTANT */
}

body::before{ z-index: -2; }
body::after { z-index: -1; }
/* ============================
   PRIVATE PAGE: brand hovers + icons
   ============================ */

.btn{
  position: relative;
}

.btn .row{
  display:flex;
  align-items:center;
  gap:10px;
}

.btn .icon{
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  opacity:.92;
}

/* MYM: bordeaux premium (déjà proche du thème privé) */
.btn.mym{
  border-color: rgba(150,60,90,.35);
}
.btn.mym:hover{
  background: linear-gradient(135deg, rgba(150,60,90,.24), rgba(90,30,55,.12));
  border-color: rgba(150,60,90,.55);
  box-shadow: 0 0 26px rgba(150,60,90,.22), 0 12px 30px rgba(0,0,0,.35);
}

/* Uncove: bleu premium au hover */
.btn.uncove{
  border-color: rgba(60,140,200,.22);
}
.btn.uncove:hover{
  background: linear-gradient(135deg, rgba(0,175,240,.18), rgba(0,120,190,.10));
  border-color: rgba(0,175,240,.45);
  box-shadow: 0 0 26px rgba(0,175,240,.20), 0 12px 30px rgba(0,0,0,.35);
}

}

/* PayPal: bleu + léger violet (premium) */
.btn.paypal{
  border-color: rgba(80,120,220,.22);
}
.btn.paypal:hover{
  background: linear-gradient(135deg, rgba(0,48,135,.18), rgba(0,156,222,.10));
  border-color: rgba(0,156,222,.45);
  box-shadow: 0 0 26px rgba(0,156,222,.18), 0 12px 30px rgba(0,0,0,.35);
}

/* Icône SVG inline: harmonisation */
.btn svg{
  width:20px;
  height:20px;
}
.theme-soon .hero h1{
  letter-spacing:.04em;
}

.theme-soon .notice{
  opacity:.85;
}
/* ============================
   SAFARI iOS — CLICK FIX (FINAL)
   ============================ */

/* 1. Tous les calques décoratifs ne doivent JAMAIS capter les taps */
body::before,
body::after,
.wrap::before{
  pointer-events: none !important;
}

/* 2. Le contenu interactif doit être au-dessus */
.wrap,
.card,
.door,
.btn,
.chip,
.back{
  position: relative;
  z-index: 2;
}

/* 3. Safari bug: fixed + backdrop-filter = tap ghost */
@supports (-webkit-touch-callout: none) {
  body::after{
    backdrop-filter: none !important;
  }
}
/* ============================
   iOS/Safari TAP FIX (non-invasif)
   ============================ */

/* Les overlays ne doivent jamais capter les taps */
body::before,
body::after,
.wrap::before,
.door::after{
  pointer-events: none !important;
}

/* Assure que les éléments cliquables reçoivent bien le tap */
a, button, .door, .btn, .chip, .back{
  pointer-events: auto !important;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* iOS Safari bug fréquent avec backdrop-filter + fixed */
@supports (-webkit-touch-callout: none) {
  body::after{
    backdrop-filter: none !important;
  }
}
/* ===== Fix logos SVG noirs (IMG) : MYM + Uncove en blanc premium ===== */
.theme-private .btn.mym img.icon,
.theme-private .btn.uncove img.icon{
  filter: brightness(0) invert(1);
  opacity: .90;
}

/* Un poil plus doux au hover (optionnel) */
.theme-private .btn.mym:hover img.icon,
.theme-private .btn.uncove:hover img.icon{
  opacity: .96;
}






