/* plan-cul.app : blanc et noir, un seul accent rose vif en aplat. Police Urbanist hébergée. Ne jamais styler .page */
@font-face{font-family:Urbanist;src:url(fonts/urbanist.woff2) format("woff2");font-weight:400 900;font-display:swap}
:root{--k:#111111;--k2:#1E1E1E;--w:#FFFFFF;--bg:#F4F3EF;--line:#DEDBD3;--txt:#2B2B2B;--mut:#6B6862;--a:#FF2E63;--a-d:#E0154C;--ok:#0F9D58;--r:8px;--f:Urbanist,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--w);color:var(--txt);font:400 17px/1.6 var(--f);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--k);text-decoration-color:var(--a);text-decoration-thickness:2px;text-underline-offset:3px}
h1,h2,h3{color:var(--k);line-height:1.05;letter-spacing:-.025em;margin:0 0 .45em;font-weight:800}
h1{font-size:clamp(2.3rem,5.2vw,3.9rem);font-weight:900;letter-spacing:-.04em}
h2{font-size:clamp(1.7rem,3vw,2.4rem)}
h3{font-size:1.2rem}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px;top:8px;background:var(--a);color:#fff;padding:8px 14px;z-index:99}.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--a);outline-offset:2px}
.muted{color:var(--mut)}

/* En-tête noir */
.top{position:sticky;top:0;z-index:40;background:var(--k);color:#fff}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:62px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-t{font-weight:900;font-size:1.3rem;color:#fff;letter-spacing:-.03em;margin:0}
.brand-t b{color:var(--a);font-weight:900}
.foot .brand-t{color:var(--k)}
.nav{display:flex;align-items:center;gap:6px}
.nav-l{color:#fff;text-decoration:none;font-weight:700;padding:8px 12px}
.nav-l:hover{text-decoration:underline;text-decoration-color:var(--a)}
.nav-c{background:var(--a);color:#fff;text-decoration:none;font-weight:800;padding:9px 16px;border-radius:var(--r)}
.nav-c:hover{background:var(--a-d)}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--k);color:#fff;text-decoration:none;font-weight:800;padding:13px 22px;border-radius:var(--r);border:0;cursor:pointer;transition:background .15s}
.btn:hover{background:var(--a)}
.btn-s{padding:9px 15px;font-size:.95rem;background:var(--a)}
.btn-s:hover{background:var(--a-d)}

/* Héros : bande noire, photo à gauche, carte blanche à droite */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--k);color:#fff;padding:52px 0 60px}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:url(img/hero-900.webp) 70% 30%/cover no-repeat;opacity:.45}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(17,17,17,.3) 0%,rgba(17,17,17,.92) 75%)}
.hero h1,.hero .lead{color:#fff}
.hero-g{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}
.kicker{font-size:.85rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#fff;margin:0 0 16px}
.kicker .age{margin-left:10px}
.lead{font-size:1.18rem;max-width:36em;margin:0 0 22px;opacity:.92}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.checks li{position:relative;padding-left:28px;font-weight:700}
.checks li::before{content:"";position:absolute;left:0;top:.42em;width:14px;height:14px;background:var(--a)}
.hero-s{padding:40px 0 30px}
.hero-s::before{display:none}
.hero-s::after{display:none}
.crumbs{font-size:.92rem;color:#bbb;margin-bottom:12px}.crumbs a{color:#fff}
@media (min-width:901px){
.hero{padding:70px 0 80px}
.hero::before{background-image:url(img/hero-1600.webp);right:auto;width:66%;opacity:1;background-position:62% 30%}
.hero::after{background:linear-gradient(90deg,rgba(17,17,17,.88) 0%,rgba(17,17,17,.55) 40%,rgba(17,17,17,.35) 55%,var(--k) 72%)}
}

/* Carte de choix (blanche sur noir) */
.picker{background:var(--w);color:var(--txt);border-radius:12px;padding:20px;box-shadow:0 24px 50px -24px rgba(0,0,0,.6)}
.picker-t{font-weight:900;color:var(--k);font-size:1.3rem;margin:0 0 12px}
.goals{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.goals button{text-align:left;font:inherit;background:var(--w);border:2px solid var(--line);color:var(--txt);border-radius:var(--r);padding:9px 12px;cursor:pointer;transition:border-color .12s}
.goals button b{display:block;color:var(--k);font-weight:800;font-size:.98rem}
.goals button small{display:block;color:var(--mut);font-size:.8rem;line-height:1.3}
.goals button:hover{border-color:var(--k)}
.goals button[aria-selected="true"]{border-color:var(--k);background:var(--k)}
.goals button[aria-selected="true"] b{color:#fff}.goals button[aria-selected="true"] small{color:#C9C6BF}
.short{list-style:none;margin:0;padding:0;display:grid}
.short li{display:grid;grid-template-columns:84px 1fr auto auto;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.short li[hidden]{display:none}
.sl-logo{width:84px;height:34px;object-fit:contain}
.sl-t{display:grid;line-height:1.25;min-width:0}.sl-t b{color:var(--k)}.sl-t small{color:var(--mut);font-size:.82rem}
.short em{font-style:normal;font-weight:900;color:var(--k);font-size:1.15rem}

/* Classement (fond blanc) */
.rank{padding:48px 0 10px}
.sub{color:var(--mut);max-width:62em;margin:0 0 24px}
.cards{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.card{background:var(--w);border:2px solid var(--k);border-radius:12px;padding:18px 18px 20px}
.card.first{box-shadow:8px 8px 0 var(--a)}
.card.is-dating{border-color:var(--line)}
.card-h{display:grid;grid-template-columns:36px 110px 1fr auto;align-items:center;gap:14px}
.pos{width:36px;height:36px;display:grid;place-items:center;font-weight:900;background:var(--k);color:#fff;border-radius:var(--r)}
.card.first .pos{background:var(--a)}
.logo{width:110px;height:46px;object-fit:contain}
.mono{display:grid;place-items:center;background:var(--b);color:var(--i);font-weight:900;font-size:1.4rem;border-radius:var(--r)}
.card-n h3{margin:0}
.tag{display:inline-block;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;margin-top:5px;background:var(--k);color:#fff;border-radius:4px}
.tag.dating{background:var(--bg);color:var(--k)}
.score{margin:0;text-align:right}.score b{font-size:2rem;font-weight:900;color:var(--k)}.score small{color:var(--mut)}
.card-note{margin:12px 0 10px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px 18px;margin:0 0 16px}
.facts div{border-top:1px solid var(--line);padding-top:6px}
.facts dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);font-weight:800}
.facts dd{margin:0;color:var(--k);font-size:.95rem}

/* Applis gratuites : bande gris clair */
.apps{padding:30px 0 6px}
.apps-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.app{display:flex;gap:12px;align-items:center;background:var(--bg);border-radius:12px;padding:14px;text-decoration:none;color:var(--txt);border:2px solid transparent}
.app:hover{border-color:var(--k)}
.app-i{width:48px;height:48px;flex:none}
.app b{display:block;color:var(--k)}.app small{display:block;color:var(--mut);font-size:.88rem;line-height:1.35}

/* Texte, FAQ, maillage */
.prose{max-width:780px;padding:36px 0 10px}
.prose h2{margin-top:1.6em}.prose h3{margin-top:1.3em}
.prose strong{color:var(--k)}
.prose table{width:100%;border-collapse:collapse;font-size:.95rem;margin:1em 0}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:9px 8px;text-align:left}
.prose th{color:var(--k)}
.faq{max-width:780px;padding:20px 0}
.faq details{border-top:2px solid var(--k);padding:0 2px}
.faq details:last-of-type{border-bottom:2px solid var(--k)}
.faq summary{cursor:pointer;font-weight:800;color:var(--k);padding:16px 0;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--a);font-weight:900;font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details div{padding:0 0 16px}
.related{padding:20px 0 30px}
.related h2{font-size:1.3rem}
.related h3{font-size:1rem;margin:14px 0 8px;opacity:.8}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.chip{border:2px solid var(--k);color:var(--k);text-decoration:none;padding:6px 14px;border-radius:var(--r);font-weight:700}
.chip:hover{background:var(--k);color:#fff}

/* Pied de page */
.foot{margin-top:40px;padding:36px 0 26px;background:var(--bg);border-top:2px solid var(--k)}
.foot-g{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px}
.foot-h{font-weight:800;color:var(--k);margin:0 0 8px}
.foot-l{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.foot-l a{color:var(--txt);text-decoration:none}.foot-l a:hover{color:var(--k);text-decoration:underline;text-decoration-color:var(--a)}
.legal{font-size:.85rem;color:var(--mut);margin-top:24px}
.age{display:inline-block;background:var(--a);color:#fff;font-weight:900;border-radius:4px;padding:0 6px;letter-spacing:0}
.legal .age{margin-right:6px}

@media (max-width:900px){
.hero-g{grid-template-columns:1fr;gap:26px}
.nav-l{display:none}
.card-h{grid-template-columns:32px 86px 1fr auto;gap:10px}
.logo{width:86px;height:38px}
.foot-g{grid-template-columns:1fr}
.card.first{box-shadow:5px 5px 0 var(--a)}
}
@media (max-width:480px){
.goals button small{display:none}
.short li{grid-template-columns:64px 1fr auto;gap:8px}
.sl-logo{width:64px;height:28px}
.short .btn-s{grid-column:1/-1}
.nav-c{padding:8px 12px;font-size:.9rem}
}

/* Popup « Trouver mon appli » */
.nav-c{border:0;font:inherit;font-weight:800;cursor:pointer}
.dlg{border:0;padding:0;background:transparent;max-width:min(560px,94vw);width:100%}
.dlg::backdrop{background:rgba(17,17,17,.72)}
.dlg .picker{box-shadow:none;border:2px solid var(--k)}
.dlg-x{position:absolute;right:10px;top:8px;margin:0}
.dlg-x button{background:none;border:0;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--k)}
.dlg{position:relative}

/* Menu « Explorer » (villes, envies) */
.dd{position:relative}
.dd summary{list-style:none;cursor:pointer;color:#fff;font-weight:700;padding:8px 12px}
.dd summary::-webkit-details-marker{display:none}
.dd summary::after{content:"";display:inline-block;width:7px;height:7px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg);margin:0 0 3px 8px}
.dd[open] summary::after{transform:rotate(225deg);margin-bottom:-1px}
.dd-p{position:absolute;right:0;top:calc(100% + 10px);background:var(--w);border:2px solid var(--k);border-radius:12px;padding:16px 18px;display:grid;grid-template-columns:repeat(2,minmax(160px,auto));gap:6px 28px;box-shadow:8px 8px 0 var(--a);z-index:50}
.dd-p a{display:block;color:var(--k);text-decoration:none;font-weight:600;padding:4px 0}
.dd-p a:hover{color:var(--a)}
.dd-h{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--mut);margin:0 0 6px}
.dd-all{font-weight:800!important;margin-top:4px}
.hero .crumbs{color:#bbb;margin-bottom:14px}.hero .crumbs a{color:#fff}
@media (max-width:900px){
.dd-p{position:fixed;left:12px;right:12px;top:66px;grid-template-columns:1fr 1fr;box-shadow:5px 5px 0 var(--a)}
.dd summary{padding:8px 6px}
}
