*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
:root {
  --primary:#D0406E; --primary-deep:#A83660; --primary-soft:#FADCE6;
  --ink:#1A1218; --ink-soft:#4A4046; --surface:#FFFFFF; --surface-warm:#FAF8F5;
  --line:#ECE6EA;
}
body { font-family:'DM Sans',sans-serif; color:var(--ink); background:var(--surface); line-height:1.6; -webkit-font-smoothing:antialiased; }
.serif { font-family:'Instrument Serif',serif; font-style:italic; font-weight:400; }
a { color:var(--primary-deep); text-decoration:none; }
a:hover { text-decoration:underline; text-underline-offset:3px; }
.container { max-width:1100px; margin:0 auto; padding:0 24px; }

nav.top { position:sticky; top:0; z-index:50; backdrop-filter:blur(12px); background:rgba(255,255,255,.9); border-bottom:1px solid var(--line); padding:12px 0; }
nav.top .inner { display:flex; justify-content:space-between; align-items:center; gap:12px; max-width:1100px; margin:0 auto; padding:0 24px; }
nav.top .brand { font-weight:800; font-size:1.2rem; letter-spacing:-.02em; color:var(--ink); }
nav.top .brand .dot { color:var(--primary); }
nav.top a.app { display:inline-flex; align-items:center; min-height:44px; background:var(--ink); color:#fff; padding:0 1.1rem; border-radius:99px; font-weight:600; font-size:.9rem; white-space:nowrap; }
nav.top a.app:hover { text-decoration:none; background:#000; }

.breadcrumb { padding:16px 0 4px; font-size:.88rem; color:var(--ink-soft); }
.breadcrumb a { display:inline-flex; align-items:center; min-height:44px; color:var(--ink-soft); }

header.tete { padding:8px 0 24px; max-width:760px; }
header.tete h1 { font-size:clamp(1.9rem,5vw,3rem); font-weight:800; letter-spacing:-.025em; line-height:1.1; margin-bottom:14px; }
header.tete p { font-size:1.08rem; color:var(--ink-soft); }

h2 { font-size:clamp(1.3rem,3.4vw,1.7rem); font-weight:800; letter-spacing:-.02em; line-height:1.2; margin:40px 0 14px; }
h2 a { color:var(--ink); }

.grille { list-style:none; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; }
.grille li { min-width:0; }
.vignette { display:block; color:var(--ink); }
.vignette:hover { text-decoration:none; }
.vignette img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:14px; background:var(--primary-soft); }
.vignette span { display:block; font-size:.9rem; font-weight:600; line-height:1.3; margin-top:8px; overflow-wrap:anywhere; }
.vignette:hover span { color:var(--primary-deep); }
.voir-tout { display:inline-flex; align-items:center; min-height:44px; font-weight:700; margin-top:6px; }

.rubriques { list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0 0 8px; }
.rubriques a { display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border:1px solid var(--line); border-radius:99px; font-weight:600; font-size:.92rem; color:var(--ink); }
.rubriques a:hover { border-color:var(--primary); color:var(--primary-deep); text-decoration:none; }

.look { display:grid; grid-template-columns:1fr; grid-template-areas:"tete" "image" "texte"; gap:0; padding:8px 0 16px; }
.look-tete { grid-area:tete; margin-bottom:18px; }
.look figure { grid-area:image; margin:0 0 22px; }
.look .texte { grid-area:texte; }
.look figure img { display:block; width:100%; max-width:440px; height:auto; aspect-ratio:9/16; object-fit:cover; border-radius:20px; background:var(--primary-soft); }
.look figcaption { font-size:.86rem; color:var(--ink-soft); margin-top:10px; }
.look h1 { font-size:clamp(1.9rem,5vw,2.8rem); font-weight:800; letter-spacing:-.025em; line-height:1.1; margin-bottom:12px; }
.look .rubrique { display:inline-block; font-size:.85rem; font-weight:700; color:var(--primary-deep); background:var(--primary-soft); border-radius:99px; padding:4px 12px; margin-bottom:12px; }
.look h1 { margin-bottom:0; }
.look .description { font-size:1.08rem; color:var(--ink-soft); margin-bottom:24px; }
.actions { display:flex; flex-direction:column; gap:12px; max-width:420px; margin-bottom:10px; }
.bouton { display:flex; align-items:center; justify-content:center; text-align:center; min-height:52px; padding:10px 20px; border-radius:99px; font-weight:700; font-size:1rem; line-height:1.25; }
.bouton:hover { text-decoration:none; }
.bouton.primaire { background:var(--primary); color:#fff; }
.bouton.primaire:hover { background:var(--primary-deep); }
.bouton.secondaire { border:2px solid var(--ink); color:var(--ink); }
.bouton.secondaire:hover { background:var(--ink); color:#fff; }
.actions .aide { font-size:.88rem; color:var(--ink-soft); margin:-4px 0 4px; }
.aussi { margin-top:22px; font-size:.9rem; color:var(--ink-soft); }
.aussi ul { list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.aussi li { border:1px solid var(--line); border-radius:99px; padding:3px 11px; }
.langues { margin-top:18px; font-size:.88rem; color:var(--ink-soft); }
.langues a { display:inline-flex; align-items:center; min-height:40px; margin-right:12px; }

.barre-essai { position:sticky; bottom:0; z-index:40; margin:24px -24px 0; padding:12px 24px calc(12px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.94); backdrop-filter:blur(10px); border-top:1px solid var(--line); transition:opacity .2s, transform .2s; }
.barre-essai.cachee { opacity:0; transform:translateY(100%); pointer-events:none; }

@media (min-width:860px) {
  .look { grid-template-columns:minmax(0,440px) minmax(0,1fr); grid-template-areas:"image tete" "image texte"; grid-template-rows:auto 1fr; column-gap:48px; align-items:start; }
  .look-tete { padding-top:12px; }
  .look figure { margin:0; }
  .look figure img { max-height:82vh; width:auto; max-width:100%; }
  .barre-essai { display:none; }
  .grille { grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:18px; }
}

footer { background:var(--ink); color:rgba(255,255,255,.75); padding:44px 0; text-align:center; font-size:.88rem; margin-top:72px; }
footer a { color:rgba(255,255,255,.9); }
footer .links { margin-top:12px; display:flex; gap:8px 22px; justify-content:center; flex-wrap:wrap; }
footer .links a { display:inline-flex; align-items:center; min-height:40px; }
