/* ==========================================================================
   Clairvox — feuille de style unique
   Palette : papier chaud, encre profonde, violet électrique, or doux, menthe.
   Typo : serif éditorial pour les titres, sans système pour le texte.
   ========================================================================== */

:root{
  --ink:#14121F;
  --ink-2:#2B2740;
  --ink-3:#5C5675;
  --paper:#FBF8F3;
  --paper-2:#F4EFE6;
  --card:#FFFFFF;
  --line:#E7E1D6;
  --line-2:#D8D1C4;
  --violet:#5B3DF5;
  --violet-2:#3E28B8;
  --violet-soft:#EFEBFF;
  --gold:#F0B429;
  --gold-soft:#FFF4D6;
  --mint:#9FE3C7;
  --mint-ink:#0F5B42;
  --rose:#E4577B;
  --radius:20px;
  --radius-sm:12px;
  --radius-lg:28px;
  --shadow:0 1px 2px rgba(20,18,31,.05), 0 10px 30px -18px rgba(20,18,31,.18);
  --shadow-hover:0 2px 4px rgba(20,18,31,.06), 0 18px 40px -20px rgba(20,18,31,.28);
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --max:1220px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:16.5px;line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,svg{max-width:100%}
a{color:inherit;text-decoration:none}
a:hover{color:var(--violet)}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.15em}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:-.018em;line-height:1.12;margin:0 0 .5em}
h1{font-size:clamp(2.3rem,4.4vw,3.7rem);letter-spacing:-.03em;line-height:1.03}
h2{font-size:clamp(1.55rem,2.5vw,2.2rem)}
h3{font-size:1.16rem;letter-spacing:-.01em}
h4{font-size:1rem}
hr{border:0;border-top:1px solid var(--line);margin:1.2rem 0}
::selection{background:var(--gold-soft);color:var(--ink)}

.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;z-index:100;border-radius:0 0 10px 0}
.skip:focus{left:0;color:#fff}
.muted{color:var(--ink-3)}
.small{font-size:.9rem}
.tiny{font-size:.78rem;line-height:1.5}
.center{text-align:center}
.dot{opacity:.45;margin:0 .15em}
.mt-2{margin-top:1.2rem}
.mt-3{margin-top:2rem}
.mt-4{margin-top:3rem}
.eyebrow{
  display:inline-flex;align-items:center;gap:.45em;margin:0 0 .7rem;
  font-size:.735rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--violet);
}
.page-dark .eyebrow,.section--dark .eyebrow{color:var(--gold)}
.lead{font-size:1.08rem;color:var(--ink-2)}

/* ---------- boutons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  padding:11px 19px;border-radius:999px;border:1px solid transparent;
  font:inherit;font-size:.92rem;font-weight:600;letter-spacing:-.005em;
  cursor:pointer;transition:transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-1px)}
.btn--primary{background:var(--violet);color:#fff;box-shadow:0 6px 18px -10px rgba(91,61,245,.9)}
.btn--primary:hover{background:var(--violet-2);color:#fff}
.btn--outline{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn--outline:hover{border-color:var(--ink);color:var(--ink);background:#fff}
.btn--ghost{background:transparent;color:var(--ink);padding:10px 12px}
.btn--ghost:hover{background:var(--paper-2);color:var(--ink)}
.btn--dark{background:var(--ink);color:#fff}
.btn--dark:hover{background:#000;color:#fff}
.btn--outline-dark{background:transparent;border-color:rgba(255,255,255,.35);color:#fff}
.btn--outline-dark:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.08)}
.btn--gold{background:var(--gold);color:var(--ink)}
.btn--gold:hover{background:#FFC94A;color:var(--ink)}
.btn--block{display:flex;width:100%}
.btn--lg{padding:14px 24px;font-size:1rem}
.btn--sm{padding:7px 12px;font-size:.8rem}

.link-arrow{
  display:inline-flex;align-items:center;gap:.4em;font-size:.9rem;font-weight:600;
  color:var(--violet);white-space:nowrap;
}
.link-arrow:hover{color:var(--violet-2);gap:.6em}
.link-arrow--light{color:var(--gold)}
.link-arrow--light:hover{color:#FFD46B}

/* ---------- chips, badges, rating ---------- */
.chip{
  display:inline-flex;align-items:center;gap:.35em;
  padding:4px 10px;border-radius:999px;border:1px solid var(--line);
  background:#fff;font-size:.78rem;font-weight:500;color:var(--ink-2);white-space:nowrap;
}
.chip--soft{background:var(--paper-2);border-color:transparent;color:var(--ink-3)}
.chip--ghost{background:transparent;border-style:dashed;color:var(--ink-3)}
.chip--link{transition:border-color .15s ease,background .15s ease,color .15s ease;cursor:pointer}
.chip--link:hover{border-color:var(--violet);background:var(--violet-soft);color:var(--violet-2)}
.chip--cat{background:color-mix(in srgb,var(--c) 12%,#fff);border-color:color-mix(in srgb,var(--c) 25%,#fff);color:var(--c);font-weight:600}
.chip-row{display:flex;flex-wrap:wrap;gap:.45rem;margin:.6rem 0}
.chip-row--lg .chip{padding:8px 14px;font-size:.85rem}

.badge{
  display:inline-flex;align-items:center;gap:.35em;padding:4px 10px;border-radius:999px;
  font-size:.72rem;font-weight:700;letter-spacing:.02em;white-space:nowrap;
}
.badge--gold{background:var(--gold-soft);color:#7A5100;border:1px solid #F5D98A}
.badge--violet{background:var(--violet-soft);color:var(--violet-2);border:1px solid #D9D0FF}
.badge--mint{background:#E6F8F0;color:var(--mint-ink);border:1px solid #BFEBD8}
.badge--soft{background:var(--paper-2);color:var(--ink-3);border:1px solid var(--line)}

.rating{display:inline-flex;align-items:center;gap:.35em;font-size:.88rem;color:var(--ink)}
.rating__star{display:inline-flex;color:var(--gold)}
.rating__count{color:var(--ink-3);font-size:.82rem}
.rating--sm{font-size:.82rem}
.rating--empty{color:var(--ink-3);font-size:.82rem}

.avatar{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  border-radius:16px;font-weight:700;letter-spacing:-.02em;color:#1B1230;
  background:linear-gradient(150deg,hsl(var(--h) 88% 86%),hsl(calc(var(--h) + 38) 82% 78%));
  border:1px solid rgba(20,18,31,.08);
}

/* ---------- en-tête ---------- */
.demo-strip{
  display:flex;align-items:center;justify-content:center;gap:.6em;position:relative;
  background:var(--ink);color:#EDE9F8;font-size:.78rem;padding:8px 44px 8px 16px;text-align:center;
}
.demo-strip strong{color:var(--gold)}
.demo-strip button{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  background:transparent;border:0;color:#EDE9F8;font-size:1.1rem;cursor:pointer;line-height:1;
}
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,248,243,.95);backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--line);
}
.site-header__inner{display:flex;align-items:center;gap:1.4rem;height:72px}
.logo{display:inline-flex;align-items:center;gap:.55rem;flex:none}
.logo__word{font-family:var(--serif);font-size:1.42rem;font-weight:600;letter-spacing:-.04em}
.logo__dot{color:var(--violet)}
.logo--footer .logo__word{color:#fff}
.main-nav{display:flex;gap:.2rem;margin-right:auto}
.main-nav a{
  padding:8px 12px;border-radius:999px;font-size:.92rem;font-weight:500;color:var(--ink-2);
}
.main-nav a:hover{background:var(--paper-2);color:var(--ink)}
.main-nav a[aria-current=page]{color:var(--violet);background:var(--violet-soft)}
.header-actions{display:flex;align-items:center;gap:.4rem}
.nav-mobile-only{display:none}
.burger{display:none;background:transparent;border:1px solid var(--line);border-radius:12px;padding:8px;cursor:pointer;color:var(--ink)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:clamp(2.4rem,5vw,4.4rem) 0 0}
.hero__glow{
  position:absolute;inset:-30% -10% auto;height:150%;pointer-events:none;
  background:
    radial-gradient(48% 52% at 76% 12%,rgba(91,61,245,.20),transparent 70%),
    radial-gradient(34% 40% at 88% 62%,rgba(240,180,41,.22),transparent 70%),
    radial-gradient(30% 40% at 8% 84%,rgba(159,227,199,.28),transparent 70%);
  filter:blur(6px);
}
.hero__inner{position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(1.5rem,4vw,4rem);align-items:center}
.hero__copy h1{margin:.2em 0 .35em}
.hero__copy h1 em{
  font-style:normal;position:relative;color:var(--violet);
  background:linear-gradient(180deg,transparent 62%,rgba(240,180,41,.45) 62%,rgba(240,180,41,.45) 92%,transparent 92%);
}
.hero__lead{font-size:1.12rem;color:var(--ink-2);max-width:38em}
.hero__quick{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:1rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}
.hero__panel{position:relative;display:flex;flex-direction:column;gap:.9rem;padding:1rem 0 2rem}
.hero__card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.1rem 1.2rem;box-shadow:var(--shadow);
}
.hero__card--main{transform:rotate(-1.2deg)}
.hero__card--float{transform:rotate(1.6deg);margin-left:2.6rem;background:linear-gradient(180deg,#fff,#FBFAFF)}
.hero__card-top{display:flex;align-items:center;gap:.7rem;margin-bottom:.5rem}
.hero__card-top div{display:flex;flex-direction:column;line-height:1.3}
.hero__card-top strong{font-family:var(--serif);font-size:1.02rem}
.hero__card-top .badge{margin-left:auto}
.hero__bars{display:flex;flex-direction:column;gap:6px;margin:.7rem 0 .6rem}
.hero__bars span{height:7px;border-radius:99px;background:linear-gradient(90deg,var(--violet),#9B87FF);opacity:.85}
.hero__bars span:nth-child(2){background:linear-gradient(90deg,var(--gold),#FFD87A)}
.hero__bars span:nth-child(3){background:linear-gradient(90deg,var(--mint),#D6F5E8)}
.hero__check{display:flex;align-items:center;gap:.5em;margin:.25em 0;font-size:.86rem;color:var(--ink-2)}
.hero__check .ic{color:var(--mint-ink);flex:none}
.hero__pill{
  position:absolute;right:-6px;bottom:6px;display:inline-flex;align-items:center;gap:.4em;
  background:var(--ink);color:#fff;padding:9px 14px;border-radius:999px;font-size:.8rem;font-weight:600;
  box-shadow:0 10px 24px -14px rgba(20,18,31,.8);
}
.statbar{
  display:grid;grid-template-columns:repeat(5,1fr);gap:1px;margin:clamp(2rem,4vw,3rem) 0 0;
  background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
}
.statbar>div{background:rgba(255,255,255,.72);padding:1rem 1.1rem;display:flex;flex-direction:column}
.statbar strong{font-family:var(--serif);font-size:1.5rem;line-height:1}
.statbar span{font-size:.78rem;color:var(--ink-3);margin-top:.25rem}

/* ---------- sections ---------- */
.section{padding:clamp(2.6rem,5vw,4.6rem) 0}
.section--tight{padding:clamp(1.8rem,3.4vw,2.8rem) 0}
.section--tint{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section--dark{background:var(--ink);color:#F3F0FF}
.section--dark h2,.section--dark h3{color:#fff}
.section--dark .muted{color:#B9B3CE}
.section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.8rem}
.section__head h2{margin:0}
.section__head p{margin:.4rem 0 0;max-width:52em}
.section__head--tight{margin-bottom:1rem}
.section__head--center{justify-content:center;text-align:center}
.section__head--center p{margin-left:auto;margin-right:auto}

/* ---------- cartes catégories ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.cat-grid--wide{grid-template-columns:repeat(4,1fr)}
.cat-tile{
  display:flex;align-items:center;gap:.85rem;padding:1rem 1.05rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.cat-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--line-2);color:inherit}
.cat-tile__icon{
  display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;
  border-radius:14px;color:#2A1C56;
  background:linear-gradient(150deg,hsl(var(--h) 92% 90%),hsl(calc(var(--h) + 40) 88% 84%));
}
.cat-tile__text{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.cat-tile__text strong{font-size:.95rem}
.cat-tile__text span{font-size:.76rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-tile__count{margin-left:auto;font-size:.78rem;color:var(--ink-3);background:var(--paper-2);border-radius:999px;padding:3px 8px}
.cat-card{
  display:flex;flex-direction:column;gap:.4rem;padding:1.3rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  transition:transform .16s ease,box-shadow .16s ease;
}
.cat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);color:inherit}
.cat-card__icon{
  display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:16px;
  color:#2A1C56;background:linear-gradient(150deg,hsl(var(--h) 92% 90%),hsl(calc(var(--h) + 40) 88% 84%));
  margin-bottom:.35rem;
}
.cat-card h3{margin:0}
.cat-card p{font-size:.86rem;color:var(--ink-3);margin:0;min-height:2.6em}
.cat-card__foot{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:.6rem;font-size:.78rem;color:var(--ink-3)}
.cat-card__foot strong{color:var(--ink)}

/* ---------- fiches praticiens ---------- */
.cards-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.pro-card{
  position:relative;display:flex;flex-direction:column;gap:.55rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.pro-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover);border-color:var(--line-2)}
.pro-card--featured{background:linear-gradient(180deg,#fff,#FFFCF3);border-color:#F1DFB4}
.pro-card__top{display:flex;align-items:center;gap:.75rem}
.pro-card__id{min-width:0;flex:1}
.pro-card__id h3{margin:0;font-size:1.06rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pro-card__role{margin:0;font-size:.8rem;color:var(--ink-3)}
.pro-card__meta{display:flex;align-items:center;gap:.35rem;font-size:.82rem}
.pro-card__specs{margin:0;display:flex;flex-wrap:wrap;gap:.35rem}
.pro-card__bio{margin:0;font-size:.86rem;color:var(--ink-3);line-height:1.5}
.pro-card__foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:auto;padding-top:.5rem;border-top:1px dashed var(--line)}
.price{font-weight:700;font-size:.9rem}
.stretched{position:absolute;inset:0;border-radius:inherit}
.stretched:focus-visible{outline:3px solid var(--violet);outline-offset:2px}

/* ---------- emploi ---------- */
.job-card{
  position:relative;display:flex;gap:.9rem;align-items:flex-start;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;
  transition:transform .16s ease,box-shadow .16s ease;
}
.job-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.job-card__logo{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:46px;height:46px;border-radius:14px;font-weight:700;font-size:.9rem;color:#201636;
  background:linear-gradient(150deg,hsl(var(--h) 86% 88%),hsl(calc(var(--h) + 42) 84% 80%));
}
.job-card__logo--lg{width:64px;height:64px;border-radius:18px;font-size:1.2rem}
.job-card__body{flex:1;min-width:0}
.job-card__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.job-card__head h3{margin:0;font-size:1rem}
.job-card__company{margin:.15rem 0 .4rem;font-size:.82rem;color:var(--ink-3)}
.job-card__tags{display:flex;flex-wrap:wrap;gap:.35rem}
.job-card__side{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;flex:none}
.job-card__arrow{color:var(--ink-3)}
.tag-tele{color:var(--mint-ink);font-weight:600}
.stack{display:flex;flex-direction:column;gap:.65rem}
.stack--gap-sm{gap:.55rem}
.stack-sm{display:flex;flex-direction:column;gap:.5rem}

/* ---------- annonces ---------- */
.ad-card{
  position:relative;display:flex;flex-direction:column;gap:.45rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem;
  transition:transform .16s ease,box-shadow .16s ease;
}
.ad-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.ad-card__head{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.ad-card__price{margin-left:auto;font-weight:700;font-size:.92rem}
.ad-card h3{margin:.2rem 0 0;font-size:1.02rem}
.ad-card__excerpt{margin:0;font-size:.85rem;color:var(--ink-3);line-height:1.5}
.ad-card__foot{display:flex;align-items:center;gap:.4rem;margin-top:auto;padding-top:.5rem}
.ad-cats{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem}
.ad-detail__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;font-size:.86rem;color:var(--ink-3)}
.ad-detail__price{display:flex;flex-direction:column;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px dashed var(--line)}
.ad-detail__price strong{font-family:var(--serif);font-size:2rem;line-height:1.1}

/* ---------- filtres et résultats ---------- */
.filters{
  display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.4rem;
  padding:.85rem 1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:1.2rem;
}
.filters--form{gap:.8rem;align-items:flex-end}
.filters--form label{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;font-weight:600;color:var(--ink-3)}
.filters--form select,.filters--form input[type=search]{
  font:inherit;font-size:.88rem;font-weight:500;color:var(--ink);
  padding:8px 12px;border:1px solid var(--line-2);border-radius:10px;background:#fff;min-width:150px;
}
.filters--form .btn{align-self:flex-end}
.filters__search{flex-direction:row!important;align-items:center;gap:.4rem;border:1px solid var(--line-2);border-radius:10px;padding:0 10px;background:#fff}
.filters__search input{border:0!important;min-width:220px}
.filters__group{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.filters__group--end{margin-left:auto}
.filters__label{display:inline-flex;align-items:center;gap:.35em;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-right:.2rem}
.filters__select select{
  font:inherit;font-size:.85rem;padding:7px 10px;border:1px solid var(--line-2);border-radius:999px;background:#fff;
}
.pill{
  display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;
  border:1px solid var(--line);background:#fff;font-size:.82rem;font-weight:500;color:var(--ink-2);
  transition:all .15s ease;
}
.pill:hover{border-color:var(--violet);color:var(--violet-2)}
.pill.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.results-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 1rem}
.results-head p{margin:0;font-size:.9rem}
.sorts{display:flex;align-items:center;gap:.7rem;font-size:.85rem}
.sorts a{color:var(--ink-3);padding-bottom:2px;border-bottom:1px solid transparent}
.sorts a.is-active{color:var(--violet);border-color:var(--violet);font-weight:600}
.results-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.6rem;align-items:start}
.aside{display:flex;flex-direction:column;gap:1rem}
.aside-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem;
}
.aside-card h3{margin:0 0 .5rem;font-size:1.02rem}
.aside-card h4{margin:.8rem 0 .4rem;font-size:.9rem}
.aside-card p{font-size:.88rem;color:var(--ink-3);margin:0 0 .7rem}
.aside-card hr{border-top:1px dashed var(--line);margin:.9rem 0}
.aside-card--accent{background:linear-gradient(160deg,#F7F4FF,#FFF9EC);border-color:#E3DCFF}
.aside-card--accent p{color:var(--ink-2)}
.aside-card--sticky{position:sticky;top:92px}
.price-scale{display:flex;flex-direction:column;gap:.35rem;margin:.6rem 0}
.price-scale>div{display:flex;justify-content:space-between;font-size:.85rem;padding:.35rem .6rem;background:var(--paper-2);border-radius:10px}
.link-list{list-style:none;padding:0;margin:0 0 .7rem}
.link-list li{display:flex;justify-content:space-between;gap:.6rem;padding:.38rem 0;border-bottom:1px solid var(--line);font-size:.87rem}
.link-list li:last-child{border-bottom:0}
.link-list li span{color:var(--ink-3);font-size:.78rem}
.check-list{list-style:none;padding:0;margin:0 0 .6rem}
.check-list li{display:flex;gap:.5em;align-items:flex-start;padding:.28rem 0;font-size:.86rem;color:var(--ink-2)}
.check-list .ic{color:var(--mint-ink);flex:none;margin-top:.2em}
.facts{display:flex;flex-direction:column;gap:.55rem;margin:0 0 .8rem}
.facts>div{display:flex;justify-content:space-between;gap:1rem;font-size:.86rem;padding-bottom:.45rem;border-bottom:1px dashed var(--line)}
.facts>div:last-child{border-bottom:0;padding-bottom:0}
.facts dt{display:flex;align-items:center;gap:.4em;color:var(--ink-3);margin:0}
.facts dd{margin:0;text-align:right;font-weight:500}
.facts--inline{flex-direction:row;flex-wrap:wrap;gap:1rem 2rem}
.facts--inline>div{flex-direction:column;border:0;gap:.1rem}
.facts--inline dd{text-align:left}

/* ---------- page head ---------- */
.page-head{padding:clamp(2rem,4vw,3.4rem) 0 clamp(1.4rem,2.6vw,2.2rem)}
.page-head--sm{padding-bottom:1rem}
.page-head__inner{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.page-head h1{max-width:22em}
.page-head__lead{font-size:1.05rem;color:var(--ink-2);max-width:44em;margin-bottom:1rem}
.page-head__search{max-width:640px}
.page-head__stats{display:flex;gap:1.8rem;flex-wrap:wrap}
.page-head__stats strong{display:block;font-family:var(--serif);font-size:1.7rem;line-height:1}
.page-head__stats span{font-size:.76rem;color:var(--ink-3)}
.page-head--annuaire{background:linear-gradient(180deg,#FFF9EC,transparent)}
.page-head--local{background:linear-gradient(180deg,#F3F0FF,transparent)}
.page-head--emploi{background:linear-gradient(180deg,#EAF7F1,transparent)}
.page-head--annonces{background:linear-gradient(180deg,#FFF3E9,transparent)}
.page-head--mag{background:linear-gradient(180deg,#F3F0FF,transparent)}
.page-head--pro{background:linear-gradient(180deg,#FFF6E5,transparent)}
.page-head--about{background:linear-gradient(180deg,#EEF9F4,transparent)}

/* ---------- recherche ---------- */
.search{
  position:relative;display:flex;align-items:center;gap:.5rem;background:#fff;
  border:1px solid var(--line-2);border-radius:999px;padding:6px 6px 6px 18px;
  box-shadow:var(--shadow);
}
.search>.ic{color:var(--ink-3);flex:none}
.search input{
  flex:1;border:0;background:transparent;font:inherit;font-size:1rem;padding:10px 4px;min-width:0;outline:none;color:var(--ink);
}
.search input::placeholder{color:#9A94A8}
.search__suggest{
  position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--line);
  border-radius:16px;box-shadow:var(--shadow-hover);overflow:hidden;z-index:60;
}
.search__suggest a{display:flex;justify-content:space-between;gap:1rem;padding:10px 16px;font-size:.9rem;border-bottom:1px solid var(--line)}
.search__suggest a:last-child{border-bottom:0}
.search__suggest a:hover{background:var(--paper-2);color:var(--ink)}
.search__suggest span{font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.search--compact input{font-size:.92rem}

/* ---------- fiches ---------- */
.fiche-head{padding:1.6rem 0 .4rem}
.fiche-head__card{
  display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.6rem;
  box-shadow:var(--shadow);
}
.fiche-head__main{display:flex;gap:1.2rem;align-items:flex-start;min-width:0}
.fiche-head__id h1{font-size:clamp(1.7rem,3vw,2.4rem);margin:.3rem 0 .2rem}
.fiche-head__badges{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.3rem}
.fiche-head__role{margin:0 0 .45rem;color:var(--ink-3);font-size:.95rem}
.fiche-head__rating{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;margin-bottom:.5rem}
.fiche-head__cta{display:flex;flex-direction:column;gap:.5rem;min-width:250px;max-width:280px}
.fiche-head__price{display:flex;flex-direction:column;padding:.7rem .9rem;background:var(--paper-2);border-radius:14px;margin-bottom:.3rem}
.fiche-head__price strong{font-family:var(--serif);font-size:1.15rem}
.fiche-head__phone{background:#EAF7F1;border:1px solid #BFEBD8;border-radius:14px;padding:.7rem .9rem;text-align:center}
.fiche-head__phone a{font-weight:700;font-size:1.05rem;color:var(--mint-ink)}
.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.6rem;align-items:start}
.profile-main{display:flex;flex-direction:column;gap:1rem;min-width:0}
.profile-aside{display:flex;flex-direction:column;gap:1rem}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem}
.panel h2{font-size:1.3rem;margin:0 0 .7rem}
.panel h3{font-size:1.05rem}
.panel p{font-size:.94rem}
.panel--muted{background:var(--paper-2)}
.panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.6rem}
.panel__head h2{margin:0}
.price-table{width:100%;border-collapse:collapse;font-size:.9rem}
.price-table th,.price-table td{text-align:left;padding:.6rem .4rem;border-bottom:1px solid var(--line)}
.price-table th{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:700}
.price-table td:last-child,.price-table th:last-child{text-align:right}
.rating-summary{display:flex;gap:2rem;align-items:center;flex-wrap:wrap;padding:.8rem 0 1.2rem;border-bottom:1px solid var(--line);margin-bottom:.4rem}
.rating-summary__score{display:flex;flex-direction:column;gap:.2rem;align-items:flex-start}
.rating-summary__score>strong{font-family:var(--serif);font-size:2.6rem;line-height:1}
.rating-summary__bars{flex:1;min-width:220px;display:flex;flex-direction:column;gap:.25rem}
.bar-row{display:flex;align-items:center;gap:.6rem;font-size:.78rem;color:var(--ink-3)}
.bar-row>span:first-child{display:inline-flex;align-items:center;gap:.15em;width:34px;color:var(--ink-2)}
.bar{flex:1;height:7px;background:var(--paper-2);border-radius:99px;overflow:hidden}
.bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#FFD87A);border-radius:99px}
.review-list{list-style:none;padding:0;margin:.4rem 0 0}
.review{padding:1rem 0;border-bottom:1px solid var(--line)}
.review:last-child{border-bottom:0}
.review__head{display:flex;align-items:center;gap:.6rem;margin-bottom:.35rem}
.review__avatar{
  display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;
  background:var(--paper-2);font-size:.78rem;font-weight:700;color:var(--ink-2);flex:none;
}
.review__head div{display:flex;flex-direction:column;line-height:1.25}
.review__head strong{font-size:.88rem}
.review__stars{margin-left:auto}
.review p{margin:.2rem 0;font-size:.92rem;color:var(--ink-2)}
.review__reply{margin-top:.6rem;padding:.7rem .9rem;background:var(--paper-2);border-left:3px solid var(--violet);border-radius:0 10px 10px 0}
.review__reply strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--violet-2)}
.review__reply p{margin:.2rem 0 0;font-size:.88rem}
.more{margin-top:.8rem}
.more summary{cursor:pointer;font-size:.88rem;font-weight:600;color:var(--violet)}
.notice{display:flex;gap:.7rem;align-items:flex-start;margin-top:1rem;padding:.8rem 1rem;background:var(--paper-2);border-radius:12px}
.notice .ic{color:var(--ink-3);flex:none;margin-top:.15em}
.notice p{margin:0}
.map-box{
  position:relative;height:140px;border-radius:14px;overflow:hidden;margin:.4rem 0 .8rem;
  background:
    linear-gradient(0deg,rgba(91,61,245,.08),rgba(91,61,245,.08)),
    repeating-linear-gradient(0deg,#EFEBE2 0 1px,transparent 1px 22px),
    repeating-linear-gradient(90deg,#EFEBE2 0 1px,transparent 1px 22px),
    #F8F5EE;
  border:1px solid var(--line);
}
.map-box__pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-60%);color:var(--violet)}
.map-box__label{position:absolute;left:10px;bottom:8px;font-size:.72rem;color:var(--ink-3);background:#fff;padding:3px 8px;border-radius:99px;border:1px solid var(--line)}
.mini-pros,.mini-jobs{list-style:none;padding:0;margin:0}
.mini-pros li,.mini-jobs li{display:flex;gap:.6rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--line)}
.mini-pros li:last-child,.mini-jobs li:last-child{border-bottom:0}
.mini-pros div,.mini-jobs li{flex-direction:column}
.mini-pros div{display:flex;flex-direction:column;line-height:1.3}
.mini-pros a,.mini-jobs a{font-size:.88rem;font-weight:600}
.mini-jobs li{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem}
.tags-line{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.8rem}

/* ---------- formulaires ---------- */
.form{display:flex;flex-direction:column;gap:.9rem}
.form h2{margin:0 0 .2rem}
.form label{display:flex;flex-direction:column;gap:.3rem;font-size:.84rem;font-weight:600;color:var(--ink-2)}
.form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=number],
.form input[type=search],.form select,.form textarea{
  font:inherit;font-size:.94rem;font-weight:400;color:var(--ink);
  padding:10px 13px;border:1px solid var(--line-2);border-radius:12px;background:#fff;
  transition:border-color .15s ease,box-shadow .15s ease;width:100%;
}
.form input:focus,.form select:focus,.form textarea:focus{
  outline:none;border-color:var(--violet);box-shadow:0 0 0 3px rgba(91,61,245,.14);
}
.form textarea{resize:vertical;min-height:110px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.form--inline .form__row{margin-bottom:.2rem}
.checkbox{flex-direction:row!important;align-items:flex-start!important;gap:.55em!important;font-weight:400!important;font-size:.82rem!important;color:var(--ink-3)!important}
.checkbox input{width:17px;height:17px;margin-top:.15em;accent-color:var(--violet);flex:none}
.checkbox a{color:var(--violet);text-decoration:underline}
.checkbox--inline{align-self:center;padding-bottom:.4rem}
.radios{border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem;display:flex;flex-direction:column;gap:.5rem}
.radios legend{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);padding:0 .3rem}
.radios label{flex-direction:row;align-items:flex-start;gap:.6rem;font-weight:400;padding:.45rem .6rem;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.radios label:has(input:checked){border-color:var(--violet);background:var(--violet-soft)}
.radios input{accent-color:var(--violet);margin-top:.25em}
.radios span{display:flex;flex-direction:column;line-height:1.35}
.radios small{font-weight:400;color:var(--ink-3);font-size:.78rem}
.form-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:1.6rem;align-items:start}
.bullet{padding-left:1.1em}
.bullet li{margin-bottom:.4rem;font-size:.94rem}
.empty{background:#fff;border:1px dashed var(--line-2);border-radius:var(--radius);padding:2.4rem;text-align:center}
.empty h3{margin-top:0}
.empty-head{max-width:52em}

/* ---------- fil d'ariane ---------- */
.crumbs{padding:.9rem 0 0}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem;padding:0;margin:0;font-size:.78rem;color:var(--ink-3)}
.crumbs li:not(:last-child)::after{content:"/";margin-left:.3rem;opacity:.5}
.crumbs a:hover{color:var(--violet)}

/* ---------- FAQ ---------- */
.faq-block{padding:clamp(2rem,4vw,3.4rem) 0}
.section .faq-block{padding-top:0}
.faq-list{display:flex;flex-direction:column;gap:.5rem;max-width:60rem}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0}
.faq-item summary{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.95rem 1.1rem;cursor:pointer;font-weight:600;font-size:.95rem;list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item__plus{color:var(--ink-3);transition:transform .18s ease;flex:none}
.faq-item[open] .faq-item__plus{transform:rotate(90deg)}
.faq-item__body{padding:0 1.1rem .95rem;color:var(--ink-2);font-size:.92rem}
.faq-item__body p{margin:0}

/* ---------- villes ---------- */
.city-cloud{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}
.city-chip{
  display:inline-flex;align-items:center;gap:.4em;padding:8px 14px;border-radius:999px;
  background:#fff;border:1px solid var(--line);font-size:.86rem;transition:all .15s ease;
}
.section--dark .city-chip{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);color:#F3F0FF}
.city-chip:hover{border-color:var(--violet);color:var(--violet-2);transform:translateY(-1px)}
.section--dark .city-chip:hover{background:rgba(255,255,255,.12);color:#fff}
.city-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem}
.city-card{
  display:flex;flex-direction:column;gap:.15rem;padding:.8rem .9rem;background:#fff;
  border:1px solid var(--line);border-radius:14px;transition:all .15s ease;
}
.city-card:hover{border-color:var(--violet);color:inherit;transform:translateY(-2px);box-shadow:var(--shadow)}
.city-card__name{font-weight:600;font-size:.92rem}
.city-card__meta{font-size:.72rem;color:var(--ink-3)}
.region-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:1.6rem}
.region-strip a{
  display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.65rem .9rem;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:12px;font-size:.84rem;
}
.region-strip a:hover{background:rgba(255,255,255,.12);color:#fff}
.region-strip span{font-size:.72rem;opacity:.6}
.region-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.region-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem}
.region-card__head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.5rem}
.region-card__head h2{font-size:1.05rem;margin:0}
.region-card ul{list-style:none;padding:0;margin:0;columns:2;column-gap:1rem}
.region-card li{display:flex;justify-content:space-between;gap:.4rem;padding:.28rem 0;font-size:.84rem;break-inside:avoid}

/* ---------- magazine ---------- */
.art-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease}
.art-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.art-card__visual{
  position:relative;height:150px;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(70% 90% at 80% 10%,hsl(var(--h) 92% 84%),transparent 70%),
    radial-gradient(70% 90% at 10% 90%,hsl(calc(var(--h) + 60) 88% 88%),transparent 70%),
    #F6F2E9;
  color:hsl(var(--h) 60% 32%);
}
.art-card__cat{position:absolute;left:12px;top:12px;background:rgba(255,255,255,.86);padding:3px 9px;border-radius:99px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.art-card__glyph{opacity:.75}
.art-card__body{padding:1rem 1.1rem 1.2rem}
.art-card__body h3{margin:.2rem 0 .4rem;font-size:1.02rem}
.art-card__body p{font-size:.85rem;color:var(--ink-3);margin:0}
.art-card--soon{background:var(--paper-2);border-style:dashed}
.art-hero{
  display:grid;grid-template-columns:1fr 1.15fr;gap:0;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1.4rem;
}
.art-hero__visual{
  position:relative;min-height:260px;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(70% 80% at 80% 10%,hsl(var(--h) 92% 82%),transparent 70%),
    radial-gradient(60% 80% at 10% 90%,hsl(calc(var(--h) + 60) 90% 88%),transparent 70%),
    #F4EFE6;
  color:hsl(var(--h) 60% 30%);
}
.art-hero__cat{position:absolute;left:16px;top:16px;background:rgba(255,255,255,.9);padding:4px 10px;border-radius:99px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.art-hero__body{padding:1.8rem}
.art-hero__body h2{font-size:clamp(1.4rem,2.2vw,1.9rem);margin:.2rem 0 .6rem}
.art-hero__body p{color:var(--ink-3)}
.article-head{padding:clamp(1.6rem,3vw,2.6rem) 0 1rem;background:linear-gradient(180deg,#F3F0FF,transparent)}
.article-head__inner{max-width:820px}
.article-head__meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.8rem}
.article-head h1{font-size:clamp(2rem,3.6vw,3rem);margin:0 0 .6rem}
.article-head__lead{font-size:1.1rem;color:var(--ink-2);max-width:60em}
.article-head__author{display:flex;align-items:center;gap:.7rem;margin-top:1.2rem}
.article-head__author div{display:flex;flex-direction:column;line-height:1.3}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:2.4rem;padding-bottom:2rem;align-items:start}
.article-body{max-width:760px}
.article-hero-visual{
  position:relative;height:170px;border-radius:var(--radius);margin-bottom:1.4rem;
  display:flex;align-items:center;justify-content:center;color:hsl(var(--h) 62% 32%);
  background:
    radial-gradient(60% 90% at 78% 14%,hsl(var(--h) 92% 84%),transparent 70%),
    radial-gradient(60% 90% at 10% 86%,hsl(calc(var(--h) + 60) 90% 88%),transparent 70%),
    #F6F2E9;
}
.article-hero-visual__label{position:absolute;right:14px;bottom:12px;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;opacity:.7}
.article-aside{display:flex;flex-direction:column;gap:1rem;position:sticky;top:92px}
.toc{list-style:none;padding:0;margin:0;counter-reset:toc}
.toc li{counter-increment:toc;padding:.35rem 0;font-size:.85rem;border-bottom:1px solid var(--line);display:flex;gap:.5rem}
.toc li::before{content:counter(toc,decimal-leading-zero);font-size:.7rem;color:var(--ink-3);font-variant-numeric:tabular-nums}
.article-cta{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  margin:2rem 0;padding:1.3rem 1.5rem;border-radius:var(--radius);
  background:linear-gradient(140deg,#F7F4FF,#FFF7E4);border:1px solid #E4DDFF;
}
.article-cta h3{margin:0 0 .2rem}
.article-cta p{margin:0;font-size:.88rem;color:var(--ink-3)}

/* ---------- prose ---------- */
.prose-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:2.4rem;align-items:start}
.prose{max-width:760px;font-size:1.02rem}
.prose h2{margin:1.6em 0 .5em;font-size:clamp(1.4rem,2.2vw,1.85rem)}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.4em 0 .4em;font-size:1.1rem}
.prose p{color:var(--ink-2)}
.prose a{color:var(--violet);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.prose ul,.prose ol{color:var(--ink-2)}
.prose li{margin-bottom:.4em}
.prose table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.92rem}
.prose th,.prose td{border:1px solid var(--line);padding:.6rem .7rem;text-align:left}
.prose th{background:var(--paper-2);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
.prose pre{background:var(--ink);color:#EDE9F8;padding:1rem 1.2rem;border-radius:14px;overflow:auto;font-family:var(--mono);font-size:.82rem;line-height:1.6}
.prose code{font-family:var(--mono);font-size:.86em;background:var(--paper-2);padding:1px 5px;border-radius:5px}
.prose blockquote{border-left:3px solid var(--gold);margin:1.2em 0;padding:.2em 0 .2em 1.2em;color:var(--ink-3);font-family:var(--serif);font-size:1.1rem}
.prose--article h2{scroll-margin-top:100px}

/* ---------- avantages / pro ---------- */
.benefits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.benefit{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem}
.benefit__icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:13px;background:var(--violet-soft);color:var(--violet-2);margin-bottom:.6rem}
.benefit h3{font-size:1rem;margin-bottom:.3rem}
.benefit p{font-size:.85rem;color:var(--ink-3);margin-bottom:.5rem}
.pro-kpi{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;min-width:300px}
.pro-kpi>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:.9rem 1rem}
.pro-kpi strong{display:block;font-family:var(--serif);font-size:1.5rem;line-height:1}
.pro-kpi span{font-size:.75rem;color:var(--ink-3)}
.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-items:start}
.price-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}
.price-card--featured{border-color:var(--violet);box-shadow:0 20px 50px -30px rgba(91,61,245,.6);background:linear-gradient(180deg,#fff,#F9F7FF)}
.price-card__flag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--violet);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:99px}
.price-card h3{margin:0 0 .3rem}
.price-card__amount{font-family:var(--serif);font-size:2.6rem;line-height:1;margin:.3rem 0 .4rem}
.price-card__amount span{font-family:var(--sans);font-size:.8rem;color:var(--ink-3);font-weight:500}
.price-card__desc{font-size:.86rem;color:var(--ink-3);min-height:2.8em}
.price-card .btn{margin-top:.8rem}
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.compare{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px}
.compare th,.compare td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--line)}
.compare thead th{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);background:var(--paper-2)}
.compare td:not(:first-child),.compare th:not(:first-child){text-align:center}
.quote-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem}
.quote-card p{font-family:var(--serif);font-size:1.02rem;line-height:1.5;color:var(--ink-2)}
.quote-card footer{display:flex;flex-direction:column;margin-top:.6rem}
.commit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.commit{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.3rem;position:relative}
.commit>span{font-family:var(--serif);font-size:1.5rem;color:var(--violet);opacity:.5}
.commit h3{margin:.2rem 0 .4rem}
.commit p{font-size:.88rem;color:var(--ink-3);margin:0}
.steps{display:grid;grid-template-columns:.85fr 1.15fr;gap:2.4rem;align-items:start}
.steps__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.8rem}
.steps__list li{display:flex;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem}
.steps__list li>span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--serif);flex:none}
.steps__list strong{display:block;margin-bottom:.15rem}
.steps__list p{margin:0;font-size:.88rem;color:var(--ink-3)}
.pro-banner{background:linear-gradient(120deg,#14121F,#2C2158);color:#F5F2FF;padding:clamp(2.4rem,4vw,3.6rem) 0}
.pro-banner__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.pro-banner h2{color:#fff;margin-bottom:.4rem}
.pro-banner p{color:#C9C3DF;max-width:46em;margin:0}
.pro-banner__actions{display:flex;gap:.6rem;flex-wrap:wrap}
.split{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}
.split__col{min-width:0}

/* ---------- newsletter + footer ---------- */
.newsletter-band{background:linear-gradient(120deg,#FFF6E3,#F3EFFF);border-top:1px solid var(--line);padding:clamp(2rem,3.5vw,3rem) 0}
.newsletter-band__inner{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center}
.newsletter-band h2{margin:.1rem 0 .4rem}
.newsletter-form{display:grid;grid-template-columns:1fr auto;gap:.6rem}
.newsletter-form input{
  font:inherit;font-size:.95rem;padding:12px 16px;border-radius:999px;border:1px solid var(--line-2);background:#fff;min-width:0;
}
.newsletter-form input:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px rgba(91,61,245,.14)}
.newsletter-form .tiny{grid-column:1/-1}
.site-footer{background:var(--ink);color:#D9D4E8;padding:clamp(2.4rem,4vw,3.6rem) 0 1.6rem}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem}
.footer-brand p{font-size:.86rem;color:#A9A2C0;max-width:34em}
.footer-brand .tiny{color:#8881A0;font-size:.74rem;margin-top:.8rem}
.site-footer h3{color:#fff;font-size:.86rem;text-transform:uppercase;letter-spacing:.1em;font-family:var(--sans);font-weight:700;margin-bottom:.7rem}
.site-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.42rem}
.site-footer ul a{font-size:.86rem;color:#C6C0D8}
.site-footer ul a:hover{color:#fff}
.footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.12);margin-top:2rem;padding-top:1.2rem}
.footer-bottom .tiny{color:#8881A0}
.footer-bottom a{color:#C6C0D8}

/* ---------- pagination / divers ---------- */
.pagination{display:flex;align-items:center;justify-content:center;gap:.35rem;margin:2rem 0 0;flex-wrap:wrap}
.pagination__btn,.pagination__num{
  display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 12px;
  border-radius:999px;border:1px solid var(--line);background:#fff;font-size:.86rem;
}
.pagination__num.is-active{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700}
.pagination__gap{color:var(--ink-3)}
.flash{margin-top:1rem;padding:.8rem 1.1rem;border-radius:12px;background:#EAF7F1;border:1px solid #BFEBD8;color:var(--mint-ink);font-size:.9rem}
.empty-head{max-width:54em;margin-bottom:1rem}
.message-wrap{display:flex;justify-content:center;padding:2rem 0}
.message-card{
  max-width:640px;width:100%;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:2.4rem;text-align:center;box-shadow:var(--shadow);
}
.message-card__icon{
  display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:50%;
  background:#E6F8F0;color:var(--mint-ink);margin-bottom:1rem;
}
.message-card p{color:var(--ink-3)}
.message-card .hero__actions{justify-content:center}
.message-card--404 .cat-grid{margin-top:2rem;text-align:left}
.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.plan-combos{column-count:3;column-gap:1.4rem;margin-top:1rem}
.plan-combos a{display:block;padding:.35rem 0;font-size:.84rem;border-bottom:1px solid var(--line);break-inside:avoid;color:var(--ink-2)}
.admin-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem}
.admin-stats>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:.9rem 1rem}
.admin-stats strong{display:block;font-family:var(--serif);font-size:1.5rem;line-height:1}
.admin-stats span{font-size:.74rem;color:var(--ink-3)}
.admin-table{width:100%;border-collapse:collapse;font-size:.86rem;min-width:720px}
.admin-table th,.admin-table td{padding:.7rem .8rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.admin-table thead th{background:var(--paper-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
.admin-actions{display:flex;gap:.35rem;flex-wrap:wrap}
.admin-actions form{margin:0}
.admin-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}
.admin-list li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem}
.admin-list li>span{display:block}
.admin-list p{margin:.3rem 0 0;color:var(--ink-3)}

/* ---------- accessibilité ---------- */
:focus-visible{outline:3px solid var(--violet);outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .btn:hover,.cat-card:hover,.pro-card:hover,.job-card:hover,.ad-card:hover,.art-card:hover,.city-card:hover{transform:none}
}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .cat-grid,.cat-grid--wide{grid-template-columns:repeat(3,1fr)}
  .benefits-grid{grid-template-columns:repeat(2,1fr)}
  .city-grid{grid-template-columns:repeat(4,1fr)}
  .region-strip{grid-template-columns:repeat(3,1fr)}
  .plan-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1040px){
  .main-nav{display:none}
  .burger{display:inline-flex}
  .hero__inner{grid-template-columns:1fr}
  .hero__panel{display:none}
  .statbar{grid-template-columns:repeat(3,1fr)}
  .statbar>div:nth-child(4),.statbar>div:nth-child(5){display:none}
  .results-layout,.profile-layout,.prose-wrap,.form-layout,.article-layout,.split,.steps{grid-template-columns:1fr}
  .aside-card--sticky,.article-aside{position:static}
  .pricing{grid-template-columns:1fr}
  .newsletter-band__inner{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .ad-min{display:none}
  .cards-3{grid-template-columns:repeat(2,1fr)}
  .art-hero{grid-template-columns:1fr}
  .art-hero__visual{min-height:200px}
  .admin-stats{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  body.nav-open .main-nav{
    display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;
    background:#fff;border-bottom:1px solid var(--line);padding:.8rem 1.4rem 1.2rem;gap:.2rem;
    box-shadow:var(--shadow-hover);
  }
  body.nav-open .main-nav a{padding:10px 12px}
  body.nav-open .nav-mobile-only{display:block}
  .header-actions .btn--outline{display:none}
  .header-actions .btn--primary{padding:9px 14px;font-size:.84rem}
  .header-search-toggle{display:none}
  .page-head__inner{flex-direction:column;align-items:flex-start}
  .section__head{flex-direction:column;align-items:flex-start;gap:.6rem}
  .compare{min-width:0}
}
@media (max-width:720px){
  body{font-size:16px}
  .wrap{padding:0 18px}
  .cards-2,.cards-3{grid-template-columns:1fr}
  .cat-grid,.cat-grid--wide{grid-template-columns:1fr 1fr}
  .city-grid{grid-template-columns:repeat(2,1fr)}
  .region-grid{grid-template-columns:1fr}
  .region-strip{grid-template-columns:1fr 1fr}
  .commit-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .form__row{grid-template-columns:1fr}
  .fiche-head__card{padding:1.2rem}
  .fiche-head__main{flex-direction:column}
  .fiche-head__cta{max-width:none;width:100%}
  .search{flex-wrap:wrap;padding:10px 14px;border-radius:22px}
  .search input{width:100%;flex-basis:100%}
  .search .btn{width:100%}
  .filters{gap:.7rem}
  .filters__group--end{margin-left:0}
  .newsletter-form{grid-template-columns:1fr}
  .region-card ul{columns:1}
  .plan-combos{column-count:1}
  .art-card__visual{height:130px}
  .price-card{padding:1.2rem}
  .message-card{padding:1.6rem}
  .job-card__side{display:none}
  .job-head__card{padding:1.2rem}
}
@media (max-width:520px){
  h1{font-size:2.05rem}
  .cat-grid,.cat-grid--wide{grid-template-columns:1fr}
  .statbar{grid-template-columns:1fr 1fr}
  .statbar>div:nth-child(3){display:none}
  .logo__word{font-size:1.22rem}
  .header-actions .btn--primary{display:none}
  .breadcrumbs ol{font-size:.72rem}
}
@media print{
  .site-header,.site-footer,.newsletter-band,.demo-strip,.pro-banner,.article-aside{display:none}
  body{background:#fff}
}

/* ---------- agenda ---------- */
.agenda-month{margin-bottom:2rem}
.agenda-month h2{font-size:1.25rem;text-transform:capitalize;color:var(--ink-3);font-family:var(--sans);font-weight:700;letter-spacing:.02em;margin-bottom:.7rem}
.agenda-list{display:flex;flex-direction:column;gap:.7rem}
.agenda-item{display:flex;gap:1.1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem}
.agenda-date{
  flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:64px;height:68px;border-radius:16px;background:linear-gradient(160deg,#F4F0FF,#FFF6E3);border:1px solid #E5DEFF;
}
.agenda-date__day{font-family:var(--serif);font-size:1.6rem;line-height:1}
.agenda-date__month{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.agenda-item__body{min-width:0;flex:1}
.agenda-item__tags{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.35rem}
.agenda-item h3{margin:.1rem 0 .3rem;font-size:1.05rem}
.agenda-item p{margin:0 0 .3rem;font-size:.88rem;color:var(--ink-3)}
.agenda-item .more summary{font-size:.82rem}

/* ---------- lexique ---------- */
.lex-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:2.4rem;align-items:start}
.tool-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:2rem;align-items:start}
.tool-layout>aside{display:flex;flex-direction:column;gap:1rem}
.lex-nav{position:sticky;top:92px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem}
.lex-nav h3{margin:0 0 .6rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;font-family:var(--sans);color:var(--ink-3)}
.lex-nav ul{list-style:none;padding:0;margin:0 0 1rem}
.lex-nav li{padding:.25rem 0;font-size:.86rem}
.lex-nav a:hover{color:var(--violet)}
.lex-tools{position:relative}
.lex-search{width:100%;font:inherit;font-size:.9rem;padding:10px 14px;border:1px solid var(--line-2);border-radius:12px;background:#fff}
.lex-search:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px rgba(91,61,245,.14)}
.lex-group{margin-bottom:2rem;scroll-margin-top:100px}
.lex-group>h2{font-size:1.35rem;margin-bottom:.8rem}
.lex-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem 1.2rem;margin-bottom:.6rem;scroll-margin-top:100px}
.lex-item h3{margin:0 0 .35rem;font-size:1.05rem;display:flex;align-items:baseline;gap:.5rem}
.lex-item h3 a{color:var(--ink);font-size:.72rem;font-weight:400;color:var(--ink-3);opacity:0;transition:opacity .15s ease}
.lex-item:hover h3 a{opacity:1}
.lex-item p{margin:0;font-size:.9rem;color:var(--ink-2)}
.lex-item p mark{background:var(--gold-soft);color:inherit}
.lex-count{font-size:.8rem;color:var(--ink-3);margin-top:.4rem}

/* ---------- outils ---------- */
.tool-card{display:flex;flex-direction:column;gap:.4rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem}
.tool-card__head{display:flex;align-items:center;gap:.7rem;margin-bottom:.3rem}
.tool-card__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;background:var(--violet-soft);color:var(--violet-2)}
.tool-card h3{margin:0}
.tool-card p{font-size:.88rem;color:var(--ink-3);margin:0 0 .5rem}
.tool-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.6rem;box-shadow:var(--shadow)}
.tool-form{display:flex;flex-wrap:wrap;gap:.8rem;align-items:flex-end}
.tool-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--ink-2)}
.tool-form select{font:inherit;font-size:.95rem;padding:10px 13px;border:1px solid var(--line-2);border-radius:12px;background:#fff}
.tool-form select:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px rgba(91,61,245,.14)}
.tool-form input{font:inherit;font-size:.95rem;padding:10px 13px;border:1px solid var(--line-2);border-radius:12px;background:#fff}
.tool-form input:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px rgba(91,61,245,.14)}
.tool-result{margin-top:1.2rem;border-top:1px dashed var(--line);padding-top:1.2rem}
.tool-result__num{display:flex;align-items:center;gap:1rem;margin-bottom:.6rem}
.tool-result__num strong{font-family:var(--serif);font-size:2.6rem;line-height:1}
.tool-result h3{margin:.2rem 0 .3rem}
.tool-result p{font-size:.94rem;color:var(--ink-2)}
.tool-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}
.disclaimer{display:flex;gap:.7rem;align-items:flex-start;background:var(--paper-2);border-radius:14px;padding:.9rem 1.1rem;margin-top:1.2rem}
.disclaimer p{margin:0;font-size:.82rem;color:var(--ink-3)}

@media (max-width:1040px){
  .lex-layout,.tool-layout{grid-template-columns:1fr}
  .lex-nav{position:static}
}
@media (max-width:720px){
  .agenda-item{flex-direction:column;gap:.7rem}
  .agenda-date{width:100%;height:auto;flex-direction:row;gap:.5rem;padding:.5rem 0;justify-content:flex-start;padding-left:.8rem}
  .agenda-date__day{font-size:1.2rem}
}

/* ------------------------------------------------------------------ tarot */
.tarot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.7rem;margin-top:1.4rem}
.tarot-grid--sm{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.tarot-tile{display:flex;gap:.7rem;align-items:center;padding:.75rem .9rem;border:1px solid var(--line);
  border-radius:14px;background:#fff;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
.tarot-tile:hover{border-color:var(--violet);transform:translateY(-2px)}
.tarot-tile__num{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;
  background:var(--violet-soft, #EEE9FF);color:var(--violet-2,#3E28B8);font-weight:700;font-size:.85rem;font-family:Georgia,serif}
.tarot-tile__body{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.tarot-tile__body strong{font-size:.95rem}
.tarot-tile__keys{font-size:.76rem;color:var(--ink-3,#5C5675)}
.suit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;margin-top:1.4rem}
@media(max-width:960px){.suit-grid{grid-template-columns:minmax(0,1fr)}}
.suit-card{border:1px solid var(--line);border-radius:16px;padding:1.1rem 1.2rem;background:#fff}
.suit-card h3{margin:.1rem 0 .3rem}
.suit-card__links{display:flex;flex-wrap:wrap;gap:.35rem .7rem;margin:.8rem 0 0;font-size:.82rem}
.suit-card__links a{color:var(--violet-2,#3E28B8);text-decoration:none}
.suit-card__links a:hover{text-decoration:underline}
.tarot-pair{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin:1.6rem 0}
.tarot-pair h3{margin-top:0;font-size:1rem}
@media(max-width:700px){.tarot-pair{grid-template-columns:1fr}}
.tarot-advice{margin:1.6rem 0;padding:1.1rem 1.3rem;border-left:3px solid var(--gold,#F0B429);
  background:var(--paper-2,#F7F3EC);border-radius:0 12px 12px 0}
.tarot-advice p{margin:0;font-size:1.02rem}
.tarot-advice cite{display:block;margin-top:.5rem;font-size:.75rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3,#5C5675);font-style:normal}
.tarot-navcards{display:flex;justify-content:space-between;gap:1rem}
.tarot-navcards p{margin:0 0 .2rem}

/* tirage interactif */
.tarot-tool{border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,#fff,#FBF8F3);
  padding:clamp(1.1rem,2.5vw,2rem)}
.tarot-tool__controls{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}
.tarot-spreads{display:flex;gap:.6rem;flex-wrap:wrap;flex:1 1 auto}
.tarot-spread{display:flex;flex-direction:column;gap:.1rem;text-align:left;cursor:pointer;
  padding:.65rem 1rem;border-radius:13px;border:1px solid var(--line);background:#fff;font:inherit;color:inherit}
.tarot-spread strong{font-size:.92rem}
.tarot-spread span{font-size:.74rem;color:var(--ink-3,#5C5675)}
.tarot-spread.is-on{border-color:var(--violet,#5B3DF5);box-shadow:inset 0 0 0 1px var(--violet,#5B3DF5)}
.tarot-board{display:flex;flex-wrap:wrap;gap:1.1rem;justify-content:center;margin:2rem 0 .5rem;min-height:230px;
  align-items:flex-start}
.tarot-board__empty{color:var(--ink-3,#5C5675);font-size:.95rem;margin:auto}
.tarot-slot{width:150px;text-align:center;display:flex;flex-direction:column;justify-content:flex-end;animation:tarotIn .4s ease both;animation-delay:calc(var(--i,0) * 80ms)}
@keyframes tarotIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.tarot-slot__pos{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3,#5C5675);
  margin:0 0 .5rem;min-height:3.4em;display:flex;align-items:flex-end;justify-content:center}
.tarot-slot__link{display:inline-block;margin-top:.5rem;font-size:.78rem;color:var(--violet-2,#3E28B8);text-decoration:none}
.tarot-flip{perspective:900px;width:150px;height:240px;margin:0 auto}
.tarot-flip__inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;
  transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.tarot-flip.is-open .tarot-flip__inner{transform:rotateY(180deg)}
.tarot-flip__face{position:absolute;inset:0;border-radius:16px;backface-visibility:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:.8rem}
.tarot-flip__back{background:radial-gradient(circle at 50% 20%,#2C2450,#14121F 70%);color:#F0B429;
  border:1px solid #322A55;font-family:Georgia,serif;letter-spacing:.16em;text-transform:uppercase;font-size:.8rem}
.tarot-flip__front{transform:rotateY(180deg);background:#fff;border:1px solid var(--line);
  box-shadow:0 12px 30px -18px rgba(20,18,31,.5);color:var(--ink,#14121F)}
.tarot-flip__front.is-rev{transform:rotateY(180deg) rotate(180deg)}
.tarot-card__num{font-family:Georgia,serif;font-size:1.5rem;color:var(--violet,#5B3DF5)}
.tarot-card__name{font-family:Georgia,serif;font-size:1rem;line-height:1.2;text-align:center}
.tarot-card__hint{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3,#5C5675)}
.tarot-reading{display:grid;gap:1rem;margin-top:2rem}
@media(min-width:900px){.tarot-reading{grid-template-columns:repeat(auto-fit,minmax(198px,1fr))}}
.tarot-read{border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem;background:#fff}
.tarot-read h3{margin:.2rem 0 .4rem;font-size:1.05rem}
.tarot-read__pos{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--violet-2,#3E28B8)}
.tarot-read__keys{font-size:.78rem;color:var(--ink-3,#5C5675);margin:0 0 .5rem}
.tarot-read p{font-size:.92rem;margin:0 0 .6rem}
.tarot-read__more{font-size:.82rem;color:var(--violet-2,#3E28B8);text-decoration:none}
.tarot-daily{display:flex;gap:1.3rem;align-items:flex-start;margin-top:1.2rem;flex-wrap:wrap}
.tarot-daily__card{width:150px;height:240px;border-radius:16px;flex:0 0 150px;
  background:radial-gradient(circle at 50% 20%,#2C2450,#14121F 70%);border:1px solid #322A55;color:#F0B429;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:.8rem;
  font-family:Georgia,serif;letter-spacing:.16em;text-transform:uppercase;font-size:.8rem;
  transition:background .4s,color .4s}
.tarot-daily__card.is-open{background:#fff;color:var(--ink,#14121F);border-color:var(--line);
  letter-spacing:0;text-transform:none;box-shadow:0 12px 30px -18px rgba(20,18,31,.5)}
.tarot-daily__text{flex:1 1 240px;min-width:0}
.tarot-daily__text h3{margin:.2rem 0 .4rem}
.tarot-daily__text p{font-size:.93rem}
.tarot-steps{margin:0 0 1rem;padding-left:1.2rem;font-size:.92rem;line-height:1.6}
.tarot-steps li{margin-bottom:.5rem}

/* --- États vides « ouverture de catégorie » ------------------------------- */
.empty--open{max-width:60em;padding:2.8rem 2rem;background:linear-gradient(180deg,#fff,#FAF8FF)}
.empty--open p{max-width:46em;margin:0 auto 1.2rem;color:var(--ink-2)}
.empty__actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}

/* ==========================================================================
   Photographies — héros, tuiles de catégories, bandeaux
   ========================================================================== */
.hero__panel--photo{padding:0}
.hero__photo{
  position:relative;overflow:hidden;border-radius:26px;
  aspect-ratio:4/4.2;box-shadow:0 30px 60px -30px rgba(28,18,60,.55),0 2px 0 rgba(255,255,255,.6) inset;
  background:#241C42;
}
.hero__photo picture,.hero__photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:30% 62%}
.hero__photo-veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,14,38,0) 38%,rgba(20,14,38,.55) 72%,rgba(20,14,38,.92) 100%);
}
.hero__photo-cap{
  position:absolute;left:1.1rem;right:auto;max-width:62%;bottom:.95rem;margin:0;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.72)
}
.hero__panel--photo .hero__card--main{
  position:absolute;left:-1.6rem;bottom:4.4rem;width:min(92%,330px);
  transform:rotate(-1.4deg);backdrop-filter:blur(6px);background:rgba(255,255,255,.96)
}
.hero__panel--photo .hero__card--float{display:none}
.hero__panel--photo .hero__pill{
  position:absolute;left:1rem;bottom:1rem;right:auto;transform:none;
  background:rgba(20,14,38,.82);color:#fff;border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(8px);
}
.hero__panel--photo .hero__pill .ic{color:var(--gold)}

/* --- tuiles de catégories avec visuel --- */
.cat-tile--img{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden}
.cat-tile__media{position:relative;display:block;aspect-ratio:16/8;overflow:hidden;background:#EDE8FA}
.cat-tile__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.cat-tile:hover .cat-tile__media img{transform:scale(1.06)}
.cat-tile__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,14,38,.05),rgba(20,14,38,.42))
}
.cat-tile--img .cat-tile__icon{
  position:absolute;left:.75rem;bottom:-.75rem;z-index:1;width:40px;height:40px;
  display:grid;place-items:center;border-radius:12px;background:#fff;
  box-shadow:0 6px 16px -8px rgba(28,18,60,.5);color:var(--violet)
}
.cat-tile--img .cat-tile__text{padding:.95rem 1rem 1rem;display:block}
.cat-tile--img .cat-tile__text strong{display:block;font-family:var(--serif);font-size:1.02rem;margin-bottom:.15rem}
.cat-tile--img .cat-tile__text span{display:block;font-size:.82rem;color:var(--ink-3);line-height:1.45}
.cat-tile--img .cat-tile__count{
  margin:0 1rem 1rem;align-self:flex-start;padding:.18rem .55rem;border-radius:99px;
  background:#F4F0FF;color:#4B3BC7;font-size:.72rem;letter-spacing:.02em;min-width:0;width:auto
}
.cat-tile--img .cat-tile__media img{object-position:var(--pos,50% 50%)}

/* --- cadre photo réutilisable --- */
.photo-frame{margin:0;position:relative;overflow:hidden;border-radius:var(--radius);background:#EDE8FA}
.photo-frame picture,.photo-frame img{display:block;width:100%;height:100%;object-fit:cover}
.photo-frame figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1.1rem .8rem;font-size:.74rem;
  letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.82);
  background:linear-gradient(180deg,transparent,rgba(18,12,34,.75))
}

/* --- bandeaux photo pleine largeur (CTA) --- */
.photoband{
  position:relative;overflow:hidden;border-radius:var(--radius);min-height:300px;
  display:flex;align-items:flex-end;background:#241C42
}
.photoband picture{position:absolute;inset:0;display:block}
.photoband img{
  position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 40%
}
.photoband::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,12,34,.1),rgba(18,12,34,.82))}
.photoband__body{position:relative;z-index:1;padding:clamp(1.4rem,3vw,2.4rem);color:#fff;max-width:44em}
.photoband__body h2,.photoband__body h3{color:#fff;margin:0 0 .4rem}
.photoband__body p{color:rgba(255,255,255,.82);margin:0 0 1rem}

/* --- en-tête de page illustré --- */
.page-head--photo{position:relative;overflow:hidden}
.page-head--photo .page-head__media{
  position:absolute;inset:0;z-index:-1;
}
.page-head--photo .page-head__media img{width:100%;height:100%;object-fit:cover}
.page-head--photo .page-head__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(255,252,246,.97) 0%,rgba(255,252,246,.9) 46%,rgba(255,252,246,.55) 68%,rgba(255,252,246,.28) 100%)
}
.page-head--photo .wrap{position:relative}

/* --- magazine --- */
.art-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.art-hero__media{position:relative;overflow:hidden;border-radius:20px;min-height:280px;background:#241C42}
.art-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,12,34,.05),rgba(18,12,34,.5))}
.art-card__media{position:relative;overflow:hidden;aspect-ratio:16/9;background:#EDE8FA}
.art-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.art-card:hover .art-card__media img{transform:scale(1.05)}

@media (max-width:900px){
  .hero__panel--photo{display:block;padding:0}
  .hero__photo{aspect-ratio:16/11;border-radius:20px}
  .hero__panel--photo .hero__card--main,.hero__panel--photo .hero__card--float{display:none}
  .hero__panel--photo .hero__pill{position:static;transform:none;margin-top:.8rem}
}

/* --- magazine : visuels --- */
.art-card__cat,.art-hero__cat{
  position:absolute;left:.8rem;top:.8rem;z-index:2;padding:.2rem .6rem;border-radius:99px;
  background:rgba(255,255,255,.92);color:#3A2E7A;font-size:.7rem;letter-spacing:.06em;
  text-transform:uppercase;font-weight:600
}
.art-card__media{position:relative;overflow:hidden;aspect-ratio:16/9;background:#EDE8FA}
.art-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.art-card:hover .art-card__media img{transform:scale(1.05)}
.art-card{border-radius:var(--radius);overflow:hidden}
.art-hero__media{position:relative;overflow:hidden;border-radius:20px;min-height:280px;background:#241C42}
.art-hero__media picture,.art-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.art-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,12,34,.05),rgba(18,12,34,.45))}

/* ==========================================================================
   Tarot — les 78 cartes dessinées (SVG originaux)
   ========================================================================== */
.tarot-tile--img{align-items:flex-start;gap:.85rem;padding:.6rem}
.tarot-tile__card{
  flex:0 0 62px;width:62px;aspect-ratio:6/10;border-radius:8px;overflow:hidden;
  box-shadow:0 6px 16px -8px rgba(20,14,38,.55);background:#241C42
}
.tarot-tile__card img{width:100%;height:100%;object-fit:cover;display:block}
.tarot-tile--img .tarot-tile__body{gap:.15rem;padding-top:.15rem}
.tarot-tile--img .tarot-tile__num{
  width:auto;height:auto;flex:none;border-radius:0;background:none;display:block;
  font-family:Georgia,serif;font-size:.72rem;letter-spacing:.14em;color:var(--gold,#B8860B)
}

/* miniatures dans les blocs de couleurs */
.suit-card__links--cards{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem .45rem;margin-top:.9rem}
.suit-card__links--cards a{display:block;text-decoration:none;color:inherit}
.suit-card__links--cards img{
  width:100%;height:auto;aspect-ratio:6/10;object-fit:cover;border-radius:6px;display:block;
  box-shadow:0 4px 12px -8px rgba(20,14,38,.6);transition:transform .25s ease
}
.suit-card__links--cards a:hover img{transform:translateY(-3px)}
.suit-card__links--cards span{display:block;font-size:.66rem;text-align:center;margin-top:.2rem;color:var(--ink-3)}

/* grande carte sur la page détail */
.tarot-art{
  margin:0 0 1.4rem;display:flex;flex-direction:column;align-items:center;gap:.7rem;
  padding:1.6rem 1rem;border-radius:var(--radius);background:radial-gradient(60% 60% at 50% 30%,#F6F1FF,#FFFFFF)
}
.tarot-art img{
  width:min(300px,72%);height:auto;border-radius:14px;display:block;
  box-shadow:0 24px 48px -24px rgba(20,14,38,.6),0 0 0 1px rgba(184,134,11,.25)
}
.tarot-art figcaption{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}

/* navigation entre cartes */
.tarot-navcard{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit}
.tarot-navcard--rev{justify-content:flex-end}
.tarot-navcard img{width:46px;height:auto;aspect-ratio:6/10;object-fit:cover;border-radius:6px;box-shadow:0 6px 14px -8px rgba(20,14,38,.6)}
.tarot-navcard span{display:flex;flex-direction:column;line-height:1.3}
.tarot-navcard strong{font-size:.9rem}

/* grille de vignettes dans la colonne latérale */
.tarot-mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin:.2rem 0 .9rem}
.tarot-mini-grid a{position:relative;display:block;text-decoration:none}
.tarot-mini-grid img{width:100%;height:auto;aspect-ratio:6/10;object-fit:cover;border-radius:6px;display:block;
  box-shadow:0 4px 12px -9px rgba(20,14,38,.7);transition:transform .25s ease}
.tarot-mini-grid a:hover img{transform:translateY(-2px)}
.tarot-mini-grid span{position:absolute;left:0;right:0;bottom:.15rem;text-align:center;font-size:.6rem;
  color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8)}

/* cartes du tirage : vraies images */
.tarot-flip{width:150px;height:250px}
.tarot-flip__face{overflow:hidden;border-radius:14px;box-shadow:0 18px 34px -22px rgba(20,14,38,.75)}
.tarot-flip__face img{width:100%;height:100%;object-fit:cover;display:block}
.tarot-flip__back{background:#241C42}
.tarot-flip__front{background:#241C42;border:0;padding:0;gap:0}
.tarot-flip__front.is-rev{transform:rotateY(180deg) rotate(180deg)}
.tarot-daily__card img{width:100%;height:100%;object-fit:cover;border-radius:14px;display:block}
.tarot-daily__card img.is-rev{transform:rotate(180deg)}
.tarot-daily__card{border:0;background:#241C42;overflow:hidden;box-shadow:0 18px 34px -22px rgba(20,14,38,.75)}
@media (max-width:720px){
  .tarot-flip{width:104px;height:174px}
  .tarot-slot{width:104px}
  .suit-card__links--cards{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.tarot-daily__card{width:170px;height:282px;flex:0 0 170px}
.tarot-board{min-height:300px}
/* alignement des libellés de position sur plusieurs lignes */
.tarot-slot{justify-content:flex-start}
.tarot-slot__pos{min-height:4.4em;align-items:flex-start;line-height:1.35}
.tarot-flip{margin:0 auto}

/* --- article : visuel d'ouverture --- */
.article-hero-visual.article-hero-visual--photo{
  height:auto;display:block;margin:0 0 1.8rem;border-radius:20px;overflow:hidden;background:#241C42;
  box-shadow:0 26px 50px -34px rgba(20,14,38,.55)
}
.article-hero-visual--photo picture,.article-hero-visual--photo img{display:block;width:100%;height:auto}
.article-hero-visual--photo figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:1.6rem 1.1rem .7rem;font-size:.72rem;
  letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.85);
  background:linear-gradient(180deg,transparent,rgba(18,12,34,.72))
}
@media (max-width:720px){
  .tarot-grid{grid-template-columns:1fr 1fr;gap:.6rem}
  .tarot-tile--img{flex-direction:column;align-items:stretch;padding:.5rem}
  .tarot-tile__card{width:100%;flex:none;aspect-ratio:6/10}
  .tarot-tile--img .tarot-tile__body{padding:.5rem .15rem .1rem}
  .tarot-tile--img .tarot-tile__body strong{font-size:.86rem}
  .tarot-tile__keys{font-size:.68rem}
}
/* bandeau photo de rubrique : assombrir un peu plus pour les pages secondaires */
.page-head--photo .page-head__media::after{
  background:linear-gradient(90deg,rgba(255,252,246,.97) 0%,rgba(255,252,246,.92) 40%,rgba(255,252,246,.6) 66%,rgba(255,252,246,.32) 100%)
}
@media (max-width:720px){
  .page-head--photo .page-head__media{display:none}
  .page-head--photo{background:linear-gradient(180deg,#F3F0FF,transparent)}
}

/* ------------------------------------------------------------------ */
/* Zodiaque : index + pages signes                                     */
/* ------------------------------------------------------------------ */
.zod-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}
.zod-tile{display:flex;flex-direction:column;text-decoration:none;color:inherit;
  border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;
  transition:transform .22s ease,box-shadow .22s ease}
.zod-tile:hover{transform:translateY(-4px);box-shadow:0 24px 40px -30px rgba(20,14,38,.6)}
.zod-tile__art{display:block;background:#120E24}
.zod-tile__art img{display:block;width:100%;height:auto}
.zod-tile__body{display:flex;flex-direction:column;gap:.15rem;padding:.85rem 1rem 1rem}
.zod-tile__body strong{font-family:var(--serif,Georgia,serif);font-size:1.18rem}
.zod-tile__dates{font-size:.82rem;color:var(--ink-3,#5C5675)}
.zod-tile__keys{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--violet-2,#3E28B8)}

.zod-hero{padding:2.6rem 0 1.2rem;background:linear-gradient(180deg,#F7F3EC 0%,#FBF8F3 100%)}
.zod-hero__grid{display:grid;grid-template-columns:1.35fr .8fr;gap:2.4rem;align-items:center}
.zod-hero__art{margin:0;display:flex;flex-direction:column;align-items:center;gap:.6rem}
.zod-hero__art img{width:100%;max-width:340px;height:auto;border-radius:22px;
  box-shadow:0 30px 60px -34px rgba(20,14,38,.7)}
.zod-hero__art figcaption{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.zod-keys{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:1rem 0 1.2rem}
.zod-keys li{font-size:.78rem;padding:.35rem .7rem;border-radius:999px;background:#fff;
  border:1px solid var(--line);color:var(--ink-3)}
.zod-hero__cta{display:flex;flex-wrap:wrap;gap:.6rem;margin:0}

.zod-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.zod-facts>div{padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:14px;background:#fff;
  display:flex;flex-direction:column;gap:.15rem;font-size:.95rem}
.zod-fact__k{font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}

.zod-pairbox{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin:1.2rem 0 1.8rem}
.zod-box{border-radius:16px;padding:1.1rem 1.3rem;border:1px solid var(--line);background:#fff}
.zod-box h3{margin:.1rem 0 .6rem;font-size:1rem}
.zod-box ul{margin:0;padding-left:1.1rem;font-size:.93rem}
.zod-box--plus{border-left:3px solid #2F8F6B}
.zod-box--minus{border-left:3px solid #C2703A}

.zod-affinity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:1rem 0 1.8rem}
.zod-affinity__item{display:flex;align-items:center;gap:.75rem;padding:.6rem .8rem;border-radius:14px;
  border:1px solid var(--line);background:#fff;text-decoration:none;color:inherit}
.zod-affinity__item:hover{border-color:var(--violet,#5B3FD9)}
.zod-affinity__item img{width:52px;height:52px;border-radius:10px;flex:0 0 52px}
.zod-affinity__item span{display:flex;flex-direction:column}
.zod-affinity__item small{color:var(--ink-3);font-size:.78rem;line-height:1.3}
.zod-affinity__item--good{border-color:rgba(47,143,107,.35);background:rgba(47,143,107,.05)}

.zod-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-top:.5rem}
.zod-mini__item{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-decoration:none;
  color:var(--ink-3);font-size:.68rem;text-align:center;padding:.25rem;border-radius:10px}
.zod-mini__item img{width:100%;height:auto;border-radius:8px}
.zod-mini__item:hover,.zod-mini__item.is-current{background:#F1ECFF;color:var(--violet-2,#3E28B8)}
.zod-next{display:flex;flex-wrap:wrap;gap:.45rem;margin:0}

@media(max-width:1040px){
  .zod-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:860px){
  .zod-hero__grid{grid-template-columns:1fr;gap:1.4rem}
  .zod-hero__art{order:-1}
  .zod-hero__art img{max-width:260px}
  .zod-facts{grid-template-columns:1fr 1fr}
  .zod-pairbox,.zod-affinity{grid-template-columns:1fr}
}
@media(max-width:560px){
  .zod-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
  .zod-facts{grid-template-columns:1fr}
  .zod-tile__body{padding:.65rem .7rem .8rem}
  .zod-tile__body strong{font-size:1rem}
}

.zod-strip{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.5rem;margin-top:1.2rem}
.zod-strip__item{display:flex;flex-direction:column;align-items:center;gap:.35rem;text-decoration:none;color:var(--ink-2,#2B2440);
  font-size:.76rem;text-align:center;transition:transform .2s ease}
.zod-strip__item img{width:100%;height:auto;border-radius:10px;box-shadow:0 10px 20px -16px rgba(20,14,38,.8)}
.zod-strip__item:hover{transform:translateY(-3px)}
.zod-strip__item:hover span{color:var(--violet-2,#3E28B8)}
@media(max-width:900px){.zod-strip{grid-template-columns:repeat(6,minmax(0,1fr));gap:.7rem}}
@media(max-width:520px){.zod-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}}

/* les liens « affinités » ne doivent pas hériter du soulignement du texte courant */
.prose .zod-affinity__item{text-decoration:none;color:inherit}
.prose .zod-affinity__item strong{color:var(--ink,#1A1430)}

/* --------------------------------------------------------------- */
/* États vides utiles, CTA praticien                                 */
/* --------------------------------------------------------------- */
.empty-inline{border:1px dashed var(--line-2,#D5CCEC);border-radius:14px;padding:1rem 1.15rem;
  background:#FCFAF6}
.empty-inline p{margin:0 0 .45rem;font-size:.92rem;line-height:1.5}
.empty-inline p:last-child{margin-bottom:0}

.cta-pro{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;
  background:linear-gradient(120deg,#241C42,#3B2A6B 60%,#4B2E86);color:#fff;
  border-radius:22px;padding:2rem 2.2rem;box-shadow:0 26px 50px -34px rgba(20,14,38,.6)}
.cta-pro h2{color:#fff;margin:.2rem 0 .5rem;font-size:1.55rem}
.cta-pro p{margin:0;max-width:60ch;line-height:1.55}
.cta-pro .muted-light{color:rgba(255,255,255,.78)}
.cta-pro__actions{display:flex;gap:.6rem;flex-wrap:wrap}
@media(max-width:720px){.cta-pro{padding:1.4rem 1.3rem}.cta-pro h2{font-size:1.3rem}}
.band-open{margin:1.4rem 0 0;padding:1.1rem 1.3rem;border-radius:16px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.9);
  max-width:none;line-height:1.6;font-size:.95rem}
.band-open a{color:#F0D9A8;text-decoration:underline}

/* ---------- souscription & paiement ---------- */
.pro-subscribe{display:flex;flex-direction:column;gap:1.1rem}
.pro-subscribe label{display:flex;flex-direction:column;gap:.32rem;font-size:.84rem;font-weight:600;color:var(--ink-2)}
.field-hint{font-weight:400;font-size:.78rem;color:var(--ink-3);line-height:1.5}
.field-hint a{color:var(--violet);text-decoration:underline}
.plan-choice{border:1px solid var(--line);border-radius:14px;padding:.85rem 1rem;display:grid;gap:.55rem}
.plan-choice legend{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);padding:0 .3rem}
.plan-choice__item{flex-direction:row!important;align-items:flex-start;gap:.6rem;font-weight:400!important;
  padding:.7rem .8rem;border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s}
.plan-choice__item:hover{border-color:var(--line-2)}
.plan-choice__item:has(input:checked){border-color:var(--violet);background:var(--violet-soft)}
.plan-choice__item input{accent-color:var(--violet);margin-top:.28em;flex:none}
.plan-choice__body{display:flex;flex-direction:column;gap:.12rem;line-height:1.35}
.plan-choice__body strong{font-size:.95rem;color:var(--ink)}
.plan-choice__price{font-size:.84rem;font-weight:600;color:var(--violet)}
.plan-choice__body small{font-weight:400;font-size:.79rem;color:var(--ink-3)}
.plan-choice--period{grid-template-columns:1fr 1fr}
@media(max-width:560px){.plan-choice--period{grid-template-columns:1fr}}
.pro-subscribe button[type=submit]{font:inherit;font-weight:600}
.notice--ok{background:#EDFBF3;color:#12603C}
.notice--warn{background:#FFF6E6;color:#6E5310}
.steps-mini{margin:.6rem 0 0;padding-left:1.15rem;font-size:.87rem;color:var(--ink-2);line-height:1.6}
.steps-mini li{margin-bottom:.45rem}

/* ---------- page de remerciement ---------- */
.paydone{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.6rem,4vw,2.6rem);
  text-align:center;box-shadow:var(--shadow)}
.paydone__icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;
  background:var(--mint-soft,#E9F9F1);color:var(--mint-ink,#12603C);margin-bottom:.8rem}
.paydone h1{margin:.2rem 0 .6rem}
.paydone__lead{font-size:1.02rem;color:var(--ink-2);max-width:44ch;margin:0 auto}
.paydone__ref{margin:1.1rem 0 .2rem;font-size:.92rem}
.paydone__ref strong{font-family:ui-monospace,Menlo,monospace;letter-spacing:.02em}
.paydone__actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1.3rem}
.paydone__next{margin-top:1.3rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.4rem 1.5rem}
.paydone__next h2{font-size:1.05rem;margin:0 0 .6rem}
.small{font-size:.84rem}.muted{color:var(--ink-3)}
.paydone__next .check-list li::before{content:"✓";color:#0F5B42;font-weight:700;flex:none;
  width:1.1em;display:inline-block}

/* ---------- CGV ---------- */
.prose-cta{position:sticky;top:96px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:1.3rem 1.4rem;box-shadow:var(--shadow)}
.prose-cta p{margin:0 0 .9rem;font-size:.9rem;color:var(--ink-2);line-height:1.55}
.prose-cta .btn{width:100%;justify-content:center}
.pay-submit{display:flex;flex-direction:column;gap:.55rem;margin-top:.2rem}
.pay-submit .btn{width:100%;justify-content:center}
.pay-submit__note{font-size:.78rem;color:var(--ink-3);text-align:center}
.btn--lg{padding:15px 26px;font-size:1rem}
.pay-submit__total{margin:0;text-align:center;font-size:.92rem;color:var(--ink-2)}
.pay-submit__total strong{font-size:1.22rem;color:var(--ink);margin-right:.15em}
.pay-submit__total span{display:block;font-size:.78rem;color:var(--ink-3)}

/* ==========================================================================
   Studio Clairvox — consultations
   ========================================================================== */
.st-head{background:linear-gradient(180deg,#FBFAFF,var(--paper));border-bottom:1px solid var(--line);padding:2.2rem 0 1.8rem}
.st-head__in{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap}
.st-head__who{display:flex;align-items:center;gap:1rem}
.st-head h1{margin:.1rem 0 .2rem;font-size:clamp(1.7rem,3.6vw,2.4rem)}
.st-head__sub{margin:0;color:var(--ink-3);font-size:.9rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.st-head__side{display:flex;align-items:center;gap:.8rem}
.st-note{font-weight:700;color:var(--ink-2)}
.st-note small{font-weight:400;color:var(--ink-3)}
.st-avatar{width:64px;height:64px;border-radius:20px;display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:1.7rem;font-weight:700;flex:none;color:#fff;
  background:hsl(var(--h,260) 62% 46%);box-shadow:inset 0 -18px 30px rgba(0,0,0,.18)}
.st-avatar--sm{width:42px;height:42px;border-radius:14px;font-size:1.15rem}
.st-balance{display:flex;align-items:center;gap:.6rem;background:var(--violet-soft);color:var(--violet-2);
  border-radius:14px;padding:.8rem 1.1rem;margin-bottom:1.2rem;font-size:.92rem}
.st-block{margin:0 0 2.6rem}
.st-block h2{display:flex;align-items:center;gap:.5rem;font-size:1.32rem;margin:0 0 .3rem}
.st-lead{color:var(--ink-3);margin:0 0 1.1rem;font-size:.93rem;max-width:62ch}
.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:1rem}
.st-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem 1.2rem;
  box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.6rem}
.st-card header{display:flex;gap:.7rem;align-items:flex-start}
.st-card h3{margin:0;font-size:1.02rem;line-height:1.3}
.st-card__icon{width:36px;height:36px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--violet-soft);color:var(--violet);flex:none}
.st-card__desc{margin:0;font-size:.87rem;color:var(--ink-3);flex:1}
.st-card footer{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.2rem}
.st-price{font-size:1.16rem;font-family:var(--serif)}
.st-price .tiny{font-size:.72rem;color:var(--ink-3);font-weight:400;font-family:var(--sans)}
.st-card--shop .st-card__icon{background:var(--gold-soft);color:#8A6100}
.st-how{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.5rem 1.6rem}
.st-steps{margin:.6rem 0 0;padding-left:1.2rem;color:var(--ink-2);font-size:.92rem;line-height:1.7}
.st-ticks{list-style:none;margin:.5rem 0 0;padding:0;font-size:.88rem;color:var(--ink-2)}
.st-ticks li{position:relative;padding-left:1.25em;margin-bottom:.4rem}
.st-ticks li::before{content:"✓";position:absolute;left:0;color:var(--mint-ink);font-weight:700}
.st-recap{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;background:var(--paper-2);
  border-radius:14px;padding:.85rem 1rem}
.st-recap div{display:flex;flex-direction:column;gap:.1rem}
.st-recap strong{font-size:.98rem}
@media(max-width:560px){.st-recap{grid-template-columns:1fr}}

/* ---- chat ---- */
.st-chatpage{background:var(--paper)}
.st-chatwrap{max-width:760px}
.st-chathead{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  background:#fff;border:1px solid var(--line);border-radius:18px 18px 0 0;padding:.9rem 1.1rem;
  position:sticky;top:72px;z-index:5}
.st-chathead__who{display:flex;align-items:center;gap:.7rem}
.st-chathead__who div{display:flex;flex-direction:column;line-height:1.25}
.st-timer{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}
.st-timer strong{font-family:var(--mono);font-size:1.25rem;color:var(--violet-2)}
.st-timer--low strong{color:var(--rose)}
.st-thread{background:#fff;border:1px solid var(--line);border-top:0;min-height:46vh;max-height:58vh;
  overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.6rem}
.st-bubble{max-width:78%;padding:.6rem .85rem;border-radius:16px;font-size:.93rem;line-height:1.5;position:relative}
.st-bubble p{margin:0}
.st-bubble--client{align-self:flex-start;background:var(--paper-2);border-bottom-left-radius:5px}
.st-bubble--praticien{align-self:flex-end;background:var(--violet);color:#fff;border-bottom-right-radius:5px}
.st-bubble--systeme{align-self:center;background:#F3F1EA;color:var(--ink-3);font-size:.82rem;max-width:92%;text-align:center}
.st-time{display:block;font-size:.68rem;opacity:.6;margin-top:.25rem}
.st-tr .st-src{display:block;margin-top:.35rem;padding-top:.35rem;border-top:1px dashed rgba(128,128,128,.35);
  font-size:.78rem;opacity:.85;font-style:italic}
.st-compose{display:flex;gap:.6rem;align-items:flex-end;background:#fff;border:1px solid var(--line);
  border-top:0;border-radius:0 0 18px 18px;padding:.8rem}
.st-compose textarea{flex:1;font:inherit;font-size:.95rem;padding:10px 12px;border:1px solid var(--line-2);
  border-radius:12px;resize:none}
.st-compose textarea:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px rgba(91,61,245,.13)}
.st-closed{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 18px 18px;
  padding:1.2rem;text-align:center}
.st-transnote{text-align:center;margin:.7rem 0 0}
.st-closeline{margin-top:.9rem;text-align:right}

/* ---- suivi ---- */
.st-followup{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.6rem 1.7rem;box-shadow:var(--shadow)}
.st-followup h1{margin:.2rem 0 .3rem}
.st-followup__q,.st-followup__a{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.st-followup h2{font-size:1.02rem;margin:0 0 .5rem}
.st-answer{background:var(--paper-2);border-radius:14px;padding:1rem 1.1rem;font-size:.95rem;line-height:1.7}
.st-answer--sm{font-size:.9rem}

/* ---- espace praticien ---- */
.st-app{padding:1.6rem 0 3rem;background:var(--paper)}
.st-app__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:.8rem 1rem;margin-bottom:1.1rem}
.st-app__id{display:flex;align-items:center;gap:.7rem}
.st-app__id div{display:flex;flex-direction:column;line-height:1.25}
.st-app__nav{display:flex;gap:.25rem;flex-wrap:wrap}
.st-app__nav a{padding:.5rem .8rem;border-radius:10px;font-size:.87rem;font-weight:600;color:var(--ink-2)}
.st-app__nav a:hover{background:var(--paper-2)}
.st-app__nav a.is-on{background:var(--violet);color:#fff}
.st-app__dot{background:var(--gold);color:#3B2A00;border-radius:20px;padding:0 .4rem;font-size:.7rem;margin-left:.3rem}
.st-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-bottom:1.1rem}
.st-kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:.95rem 1rem;display:flex;flex-direction:column}
.st-kpi strong{font-family:var(--serif);font-size:1.7rem;line-height:1.1}
.st-kpi span{font-size:.78rem;color:var(--ink-3)}
.st-cols{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem;margin-bottom:1rem}
.st-card h2{font-size:1.08rem;margin:0 0 .6rem}
.st-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.st-list li{display:flex;align-items:center;gap:.7rem;padding:.6rem .2rem;border-bottom:1px solid var(--line)}
.st-list li:last-child{border-bottom:0}
.st-list .grow{display:flex;flex-direction:column;line-height:1.3;flex:1}
.st-share input{width:100%;font:inherit;font-size:.85rem;padding:9px 11px;border:1px solid var(--line-2);
  border-radius:10px;background:var(--paper-2);font-family:var(--mono)}
.st-table{width:100%;border-collapse:collapse;font-size:.88rem}
.st-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);
  padding:.5rem .6rem;border-bottom:1px solid var(--line)}
.st-table td{padding:.6rem;border-bottom:1px solid var(--line);vertical-align:top}
.st-table__act{display:flex;gap:.4rem;justify-content:flex-end}
.st-table__act form{display:inline}
.st-req{border:1px solid var(--line);border-radius:14px;padding:1rem;margin-bottom:.9rem}
.st-req header{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:.5rem}
.st-req__q{background:var(--paper-2);border-radius:10px;padding:.7rem .85rem;font-size:.9rem;white-space:pre-line}
.st-form2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.st-form2 .span2{grid-column:1/-1}
.st-form2__actions{display:flex;gap:.6rem;margin-top:.3rem}
@media(max-width:820px){
  .st-cols,.st-form2{grid-template-columns:1fr}
  .st-kpis{grid-template-columns:1fr 1fr}
  .st-chathead{top:56px}
  .st-bubble{max-width:88%}
}

/* ---- annuaire des studios ---- */
.st-grid--pros{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.st-procard{display:flex;align-items:center;gap:.9rem;background:#fff;border:1px solid var(--line);
  border-radius:18px;padding:1rem;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}
.st-procard:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.st-procard__body{display:flex;flex-direction:column;line-height:1.35;flex:1}
.st-procard__meta{display:flex;gap:.7rem;font-size:.78rem;color:var(--ink-3);margin-top:.15rem}
.st-procard__go{color:var(--violet)}
.st-lang{display:flex;align-items:center;gap:.35rem;margin-left:auto;margin-right:.8rem}
.st-lang select{font:inherit;font-size:.8rem;padding:5px 8px;border:1px solid var(--line-2);border-radius:9px;background:#fff}
.st-chathead{flex-wrap:wrap}
.st-form2{background:transparent}
.st-form2 label{display:flex;flex-direction:column;gap:.3rem;font-size:.84rem;font-weight:600;color:var(--ink-2)}
.st-form2 input,.st-form2 select,.st-form2 textarea{font:inherit;font-size:.94rem;font-weight:400;
  padding:10px 12px;border:1px solid var(--line-2);border-radius:12px;background:#fff;width:100%}
.st-form2 input:focus,.st-form2 select:focus,.st-form2 textarea:focus{outline:none;border-color:var(--violet);
  box-shadow:0 0 0 3px rgba(91,61,245,.14)}
.st-form2 textarea{resize:vertical}

/* ==========================================================================
   Offre commerciale du Studio (.of-*) — page de vente /studio/offre
   ========================================================================== */
.of-hero{
  background:
    radial-gradient(1200px 420px at 12% -10%, rgba(91,61,245,.10), transparent 60%),
    radial-gradient(900px 380px at 92% 0%, rgba(240,180,41,.16), transparent 62%),
    var(--paper);
  border-bottom:1px solid var(--line);
  padding:clamp(2.4rem,5vw,4.4rem) 0 clamp(2rem,4vw,3.4rem);
}
.of-hero__in{display:grid;grid-template-columns:1.25fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.of-hero h1{margin-bottom:.6rem}
.of-hero h1 em{font-style:normal;color:var(--violet)}
.of-hero__lead{font-size:1.1rem;color:var(--ink-2);max-width:38em;margin-bottom:1.5rem}
.of-hero__cta{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}
.of-hero__list{
  list-style:none;margin:0;padding:1.3rem 1.4rem;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
  display:grid;gap:.85rem;font-size:.94rem;
}
.of-hero__list li{display:flex;gap:.65rem;align-items:flex-start;line-height:1.5}
.of-hero__list svg{flex:0 0 auto;color:var(--mint-ink);margin-top:.18rem}

.of-head{max-width:44rem;margin:0 auto 2.2rem;text-align:center}
.of-head h2{margin-bottom:.55rem}
.of-head p{color:var(--ink-3);margin:0}

.of-plans{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-items:stretch}
.of-plan{
  position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:1.9rem 1.8rem;box-shadow:var(--shadow);
  transition:transform .18s ease, box-shadow .18s ease;
}
.of-plan:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.of-plan--pro{
  border-color:transparent;color:#fff;
  background:linear-gradient(165deg,#241C4A 0%,#14121F 60%,#1C1533 100%);
  box-shadow:0 24px 60px -32px rgba(20,18,31,.75);
}
.of-plan--pro h3,.of-plan--pro .of-plan__price strong{color:#fff}
.of-plan__tag{
  display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;
  letter-spacing:.07em;text-transform:uppercase;color:var(--violet-2);
  background:var(--violet-soft);border-radius:999px;padding:.32rem .7rem;margin-bottom:1rem;
}
.of-plan__tag--pro{background:rgba(240,180,41,.16);color:var(--gold)}
.of-plan h3{margin:0 0 .35rem;font-size:1.5rem}
.of-plan__price{display:flex;align-items:baseline;gap:.4rem;margin:0 0 .15rem}
.of-plan__price strong{font-family:var(--serif);font-size:clamp(2.6rem,4vw,3.3rem);line-height:1;letter-spacing:-.03em}
.of-plan__price span{color:var(--ink-3);font-size:.95rem}
.of-plan--pro .of-plan__price span{color:rgba(255,255,255,.62)}
.of-plan__rate{font-size:.92rem;color:var(--ink-3);margin:0 0 1.3rem}
.of-plan--pro .of-plan__rate{color:rgba(255,255,255,.72)}
.of-plan__list{list-style:none;padding:0;margin:0 0 1.3rem;display:grid;gap:.6rem;font-size:.93rem}
.of-plan__list li{position:relative;padding-left:1.45rem;line-height:1.45}
.of-plan__list li::before{
  content:"";position:absolute;left:0;top:.42em;width:.62rem;height:.34rem;
  border-left:2px solid var(--mint-ink);border-bottom:2px solid var(--mint-ink);
  transform:rotate(-45deg);
}
.of-plan--pro .of-plan__list li::before{border-color:var(--mint)}
.of-plan__note{
  font-size:.83rem;line-height:1.55;color:var(--ink-3);background:var(--paper-2);
  border-radius:var(--radius-sm);padding:.75rem .9rem;margin:0 0 1.3rem;
}
.of-plan--pro .of-plan__note{background:rgba(255,255,255,.07);color:rgba(255,255,255,.78)}
.of-plan__note strong{color:inherit}

.of-sim{
  margin-top:1.6rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.6rem 1.7rem;box-shadow:var(--shadow);
}
.of-sim h3{margin:0 0 .2rem}
.of-sim__range{display:flex;align-items:center;gap:1rem;margin:1.2rem 0 1rem}
.of-sim__range input[type=range]{flex:1;accent-color:var(--violet);height:26px;cursor:pointer}
.of-sim__range output{
  min-width:6.5rem;text-align:right;font-family:var(--serif);font-size:1.35rem;font-weight:600;
}
.of-sim__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.of-sim__box{
  display:grid;gap:.15rem;padding:1rem 1.15rem;border-radius:var(--radius-sm);
  background:var(--paper-2);border:1px solid transparent;transition:.18s ease;
}
.of-sim__box strong{font-family:var(--serif);font-size:1.15rem}
.of-sim__box--pro{background:var(--ink);color:#fff}
.of-sim__box--pro .tiny{color:rgba(255,255,255,.7)}
.of-sim__box.is-best{border-color:var(--mint-ink);box-shadow:0 0 0 3px rgba(159,227,199,.45)}
.of-sim__verdict{margin:1rem 0 0;font-size:.94rem;font-weight:600}

.of-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.of-feat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.35rem}
.of-feat svg{color:var(--violet);margin-bottom:.7rem}
.of-feat h3{font-size:1.05rem;margin:0 0 .4rem}
.of-feat p{margin:0;font-size:.9rem;color:var(--ink-3);line-height:1.55}

.of-faq{max-width:52rem}
.of-faq h2{text-align:center;margin-bottom:1.6rem}

.of-cta{
  background:linear-gradient(160deg,var(--ink) 0%,#221B45 55%,#2B2158 100%);color:#fff;
  border-radius:0;padding:clamp(2.4rem,5vw,3.8rem) 0;
}
.of-cta__in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:start}
.of-cta h2{color:#fff}
.of-cta p{color:rgba(255,255,255,.78)}
.of-cta .tiny{color:rgba(255,255,255,.55)}
.of-form{
  display:grid;gap:.75rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius);padding:1.4rem;
}
.of-form label{display:grid;gap:.32rem;font-size:.82rem;font-weight:600;color:rgba(255,255,255,.85)}
.of-form input[type=text],.of-form input[type=email]{
  font:inherit;font-size:.95rem;font-weight:400;padding:11px 13px;border-radius:10px;
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.94);color:var(--ink);
}
.of-form input:focus{outline:2px solid var(--gold);outline-offset:1px}
.of-form fieldset{border:0;padding:0;margin:.2rem 0 0}
.of-form legend{font-size:.82rem;font-weight:600;color:rgba(255,255,255,.85);margin-bottom:.45rem;padding:0}
.of-form__plans{display:grid;gap:.4rem}
.of-form__radio{
  display:flex!important;align-items:center;gap:.55rem;font-weight:400!important;font-size:.88rem!important;
  color:rgba(255,255,255,.9)!important;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:10px;padding:.6rem .75rem;cursor:pointer;
}
.of-form__radio:has(input:checked){background:rgba(240,180,41,.14);border-color:rgba(240,180,41,.5)}
.of-form__radio input{accent-color:var(--gold)}

@media(max-width:900px){
  .of-hero__in{grid-template-columns:1fr}
  .of-plans{grid-template-columns:1fr}
  .of-grid{grid-template-columns:1fr 1fr}
  .of-cta__in{grid-template-columns:1fr}
}
@media(max-width:620px){
  .of-grid{grid-template-columns:1fr}
  .of-sim__grid{grid-template-columns:1fr}
  .of-sim__range{flex-wrap:wrap}
}

/* ==========================================================================
   Formules dans l'espace praticien (.st-plan*)
   ========================================================================== */
.st-planline{font-size:1.05rem;margin:0 0 .9rem}
.st-plans{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:.4rem 0 1rem}
.st-plan{
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:.9rem 1rem;background:var(--paper);
}
.st-plan.is-on{border-color:var(--violet);background:var(--violet-soft)}
.st-plan--pro{background:var(--ink);color:#fff;border-color:var(--ink)}
.st-plan--pro.is-on{background:linear-gradient(160deg,#2B2158,#14121F);border-color:var(--violet)}
.st-plan h3{font-size:1rem;margin:0 0 .2rem}
.st-plan__price{font-family:var(--serif);font-size:1.5rem;font-weight:700;margin:0 0 .15rem;line-height:1.1}
.st-plan__price span{font-family:var(--sans);font-size:.78rem;font-weight:400;color:var(--ink-3)}
.st-plan--pro .st-plan__price span{color:rgba(255,255,255,.6)}
.st-plan form{margin-top:.6rem}

.st-gains{display:grid;gap:.45rem;margin:0 0 1rem}
.st-gains div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px dashed var(--line)}
.st-gains dt{color:var(--ink-3);font-size:.9rem}
.st-gains dd{margin:0;font-weight:600}
.st-gains__net{border-bottom:0!important;background:var(--mint);border-radius:10px;padding:.6rem .8rem!important}
.st-gains__net dt{color:var(--mint-ink);font-weight:600}

@media(max-width:640px){.st-plans{grid-template-columns:1fr}}

/* ==========================================================================
   Back-office : abonnements & revenus
   ========================================================================== */
.st-admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-bottom:1.4rem}
.st-admin-kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:.9rem 1rem}
.st-admin-kpi span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.st-admin-kpi strong{font-family:var(--serif);font-size:1.5rem;line-height:1.2}
@media(max-width:820px){.st-admin-grid{grid-template-columns:1fr 1fr}}

/* Encart « payer maintenant » sur la page de suivi */
.st-paynow{
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;
  margin-top:1rem;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--paper-2);
}
.st-paynow strong{display:block;font-family:var(--serif);font-size:1.05rem;margin-bottom:.15rem}
.st-paynow span{display:block;max-width:46ch}

/* ==========================================================================
   Planning du praticien (.st-week, .st-slot, .st-free)
   ========================================================================== */
.st-week{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin:.4rem 0 .2rem}
.st-week__day{
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:.55rem .5rem;
  background:var(--paper);min-height:96px;
}
.st-week__day.is-on{background:#fff;border-color:var(--line-2)}
.st-week__name{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--ink-3);font-weight:700;margin-bottom:.4rem}
.st-week__off{font-size:.78rem;color:#B3ADC0;font-style:italic}
.st-slot{
  display:block;position:relative;white-space:nowrap;
  background:var(--violet-soft);color:var(--violet-2);border-radius:8px;
  padding:.3rem 1.1rem .3rem .4rem;font-size:.72rem;font-weight:600;
  margin-bottom:.3rem;line-height:1.3;overflow:hidden;
}
.st-slot em{display:block;font-style:normal;font-weight:400;font-size:.64rem;color:#6B5FB0;
  white-space:normal;line-height:1.2}
.st-slot form{margin:0;position:absolute;top:1px;right:2px}
.st-slot__x{background:none;border:0;color:#6B5FB0;font-size:.95rem;line-height:1;cursor:pointer;padding:0 2px}
.st-slot__x:hover{color:var(--rose)}

.st-free{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.st-free li{display:grid;gap:.25rem;padding-bottom:.5rem;border-bottom:1px dashed var(--line)}
.st-free__day{font-weight:600;font-size:.9rem}
.st-free__times{display:flex;flex-wrap:wrap;gap:.3rem}
.st-free__t{background:var(--mint);color:var(--mint-ink);border-radius:6px;padding:.1rem .4rem;
  font-size:.76rem;font-weight:600}
.st-inline-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.9rem}
.st-live{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;font-weight:600;
  padding:.35rem .7rem;border-radius:999px;background:var(--paper-2);color:var(--ink-3)}
.st-live.is-on{background:#DFF6EA;color:var(--mint-ink)}
.st-live__dot{width:.55rem;height:.55rem;border-radius:50%;background:#B3ADC0}
.st-live.is-on .st-live__dot{background:#16A46A;box-shadow:0 0 0 3px rgba(22,164,106,.18)}

/* ==========================================================================
   Prise de rendez-vous côté client (.rdv-*)
   ========================================================================== */
.rdv-layout{display:grid;grid-template-columns:1.55fr .95fr;gap:1.4rem;align-items:start}
.rdv-head{margin-bottom:1rem}
.rdv-head h2{margin-bottom:.25rem}
.rdv-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem}
.rdv-day{
  display:grid;gap:.1rem;text-align:center;padding:.7rem .5rem;border:1px solid var(--line);
  border-radius:var(--radius-sm);background:#fff;transition:.16s ease;
}
.rdv-day:hover{border-color:var(--violet);background:var(--violet-soft);color:var(--violet-2)}
.rdv-day__wd{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.rdv-day__n{font-family:var(--serif);font-size:1.15rem;font-weight:600}
.rdv-day__c{font-size:.7rem;color:var(--mint-ink);font-weight:600}
.rdv-back{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:.8rem}
.rdv-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:.45rem}
.rdv-time{
  text-align:center;padding:.55rem .3rem;border:1px solid var(--line-2);border-radius:10px;
  background:#fff;font-weight:600;font-size:.9rem;
}
.rdv-time:hover{border-color:var(--violet);color:var(--violet-2)}
.rdv-time.is-on{background:var(--violet);color:#fff;border-color:var(--violet)}
.rdv-form{margin-top:1.4rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.3rem 1.4rem;box-shadow:var(--shadow)}
.rdv-form h3{margin-bottom:.2rem}
.rdv-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:.8rem 0 1rem}
.rdv-form__grid label{display:grid;gap:.25rem;font-size:.8rem;font-weight:600;color:var(--ink-2)}
.rdv-form__grid input,.rdv-form__grid textarea{
  font:inherit;font-size:.92rem;font-weight:400;padding:9px 11px;border-radius:9px;
  border:1px solid var(--line-2);background:var(--paper);color:var(--ink);width:100%;
}
.rdv-form__wide{grid-column:1/-1}
.rdv-services{margin-top:1.6rem}
.rdv-services__list{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}
.rdv-service{display:grid;gap:.1rem;padding:.55rem .85rem;border:1px solid var(--line);
  border-radius:10px;background:#fff;font-size:.85rem}
.rdv-service span{font-size:.74rem;color:var(--ink-3)}
.rdv-service.is-on{border-color:var(--violet);background:var(--violet-soft);color:var(--violet-2)}
.rdv-side{display:grid;gap:1rem}
.rdv-steps{margin:.2rem 0 0;padding-left:1.1rem;font-size:.86rem;display:grid;gap:.45rem;color:var(--ink-2)}
.rdv-recap{display:grid;gap:.5rem;margin:1.1rem 0 0}
.rdv-recap div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dashed var(--line);
  padding-bottom:.45rem}
.rdv-recap dt{color:var(--ink-3);font-size:.88rem}
.rdv-recap dd{margin:0;font-weight:600;text-align:right}
.rdv-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.3rem}
.st-card--soon{background:linear-gradient(160deg,#F2FBF6,#E7F8EF);border-color:#BFE9D2}
@media(max-width:900px){.rdv-layout{grid-template-columns:1fr}.st-week{grid-template-columns:repeat(4,1fr)}}
@media(max-width:600px){.st-week{grid-template-columns:repeat(2,1fr)}.rdv-form__grid{grid-template-columns:1fr}}

/* Bandeau de disponibilité en haut du studio */
.st-livebar{
  display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:.7rem 1rem;margin-bottom:1.1rem;box-shadow:var(--shadow);
}
.st-livebar .tiny{flex:1;min-width:16ch}

/* Studio en préparation */
.st-card--wait{background:linear-gradient(165deg,#FFFDF7,#FFF6E4);border-color:#F1E2BF}
.st-card--wait h2{margin-bottom:.5rem}

/* —— Journal des consultations —— */
.st-pagehead{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
.st-pagehead h1{font-size:clamp(1.35rem,3vw,1.7rem);margin:0 0 .2rem}
.st-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.7rem;margin-bottom:1.1rem}
.st-kpi{background:#fff;border:1px solid var(--line,#E7E1F0);border-radius:14px;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.15rem}
.st-kpi__label{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#6B6580)}
.st-kpi__value{font-size:1.5rem;line-height:1.1;font-weight:600}
.st-kpi--win{background:linear-gradient(160deg,#F2FBF4,#E6F7EC);border-color:#BEE5CB}
.st-kpi--win .st-kpi__value{color:#1B7A44}
.st-filters{display:flex;gap:.8rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:.9rem}
.st-filters label{display:flex;flex-direction:column;gap:.2rem}
.st-filters select{padding:.4rem .6rem;border:1px solid var(--line,#E7E1F0);border-radius:9px;background:#fff;font:inherit;font-size:.85rem}
.st-filters__reset{font-size:.78rem;color:var(--muted,#6B6580);text-decoration:underline}
.st-filters__count{margin-left:auto;font-size:.78rem;color:var(--muted,#6B6580)}
.st-tablewrap{overflow-x:auto;background:#fff;border:1px solid var(--line,#E7E1F0);border-radius:14px}
.st-table{width:100%;border-collapse:collapse;font-size:.86rem}
.st-table th,.st-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid #F1EDF7;vertical-align:top}
.st-table thead th{font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted,#6B6580);background:#FBFAFE;white-space:nowrap}
.st-table tbody tr:hover{background:#FCFBFF}
.st-table__num{text-align:right;white-space:nowrap}
.st-table__sub{display:block;font-size:.74rem;color:var(--muted,#6B6580)}
.st-table__net{color:#1B7A44}
.st-table .is-cost{color:#A6432F}
.st-table tfoot th{background:#FBF7FF;border-top:2px solid #E7E1F0;font-size:.82rem;white-space:nowrap}
.st-kind{display:inline-block;font-size:.72rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;background:#F1EDFA;color:#4B3A85}
.st-kind--chat{background:#EAF2FF;color:#1F5AA8}
.st-kind--appel{background:#EAF7EF;color:#1B7A44}
.st-kind--ecrit{background:#FFF4E3;color:#94601A}
.st-kind--soin,.st-kind--produit{background:#FDEBF3;color:#9B2F62}
.st-kind--rdv_chat,.st-kind--rdv_appel{background:#EFEDFF;color:#4433A6}
.st-tag{font-size:.72rem;padding:.12rem .48rem;border-radius:999px;white-space:nowrap}
.st-tag--ok{background:#E7F7ED;color:#1B7A44}
.st-tag--wait{background:#FFF4E3;color:#94601A}
.st-tag--off{background:#F2F0F5;color:#6B6580}
.st-pager{display:flex;align-items:center;gap:1rem;justify-content:center;margin:1rem 0}
.st-note{margin-top:.9rem;max-width:70ch}
.st-empty{background:#fff;border:1px solid var(--line,#E7E1F0);border-radius:16px;padding:2rem 1.6rem;text-align:center}
.st-empty h2{margin:0 0 .4rem;font-size:1.15rem}
.st-empty p{max-width:52ch;margin:0 auto .9rem;color:var(--muted,#6B6580)}
.st-compare{margin-top:1.6rem;background:linear-gradient(165deg,#FFFDF7,#FFF6E4);border:1px solid #F1E2BF;border-radius:16px;padding:1.2rem 1.3rem}
.st-compare h2{font-size:1.02rem;margin:0 0 .2rem}
.st-compare__table{width:100%;border-collapse:collapse;margin:.8rem 0 .5rem;font-size:.86rem}
.st-compare__table th,.st-compare__table td{padding:.42rem .6rem;border-bottom:1px solid #F0E4CB;text-align:right}
.st-compare__table th:first-child,.st-compare__table td:first-child{text-align:left}
.st-compare__table thead th{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:#8A6B33}
@media (max-width:640px){
  .st-table{font-size:.8rem}
  .st-table th,.st-table td{padding:.5rem .45rem}
  .st-filters__count{margin-left:0;width:100%}
}

/* —— Comparatif chiffré (page Formules) —— */
.of-real{margin:1.8rem auto 0;max-width:760px;background:linear-gradient(165deg,#FFFDF8,#FFF6E6);
  border:1px solid #F0E1C0;border-radius:18px;padding:1.4rem 1.5rem}
.of-real__head h3{margin:0 0 .3rem;font-size:1.12rem}
.of-real__table{width:100%;border-collapse:collapse;margin:.9rem 0 .6rem;font-size:.9rem}
.of-real__table th,.of-real__table td{padding:.5rem .6rem;text-align:right;border-bottom:1px solid #F0E4CB}
.of-real__table th:first-child,.of-real__table td:first-child{text-align:left;width:44%}
.of-real__table thead th{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#8A6B33}
.of-real__table .is-ours{background:#F3FBF5}
.of-real__table thead .is-ours{color:#1B7A44}
.of-real__total td{border-top:2px solid #E4D2AC;border-bottom:0;padding-top:.7rem;font-size:1rem}
.of-real__total .is-ours{color:#1B7A44}
.of-real__note{margin:.5rem 0 .3rem;font-size:.92rem}
@media (max-width:560px){.of-real{padding:1.1rem}.of-real__table{font-size:.82rem}
  .of-real__table th,.of-real__table td{padding:.42rem .3rem}}

/* ---- outils gratuits V8.3 ---- */
.tool-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin:.4rem 0 1.2rem}
.tool-grid--9{grid-template-columns:repeat(3,1fr);max-width:420px}
.tool-score{background:var(--paper-2);border:1px solid var(--line);border-radius:14px;
  padding:.8rem .9rem;display:flex;flex-direction:column;gap:.1rem}
.tool-score strong{font-family:var(--serif);font-size:1.9rem;line-height:1}
.tool-cell{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;
  padding:.6rem .7rem;display:flex;flex-direction:column;gap:.1rem;min-height:74px}
.tool-cell.is-full{background:var(--violet-soft);border-color:#CFC4FB}
.tool-cell__n{font-family:var(--serif);font-size:1.2rem;color:var(--ink-3)}
.tool-cell__dots{color:var(--violet);font-size:.8rem;letter-spacing:.1em;min-height:1em}
.tool-bar{height:10px;border-radius:999px;background:var(--paper-2);overflow:hidden;margin:.6rem 0}
.tool-bar span{display:block;height:100%;background:linear-gradient(90deg,#5B3DF5,#9B6BF5)}
.tool-keys{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.35rem}
.tool-keys li{padding:.5rem .7rem;background:var(--violet-soft);border-radius:10px;font-size:.88rem}
.tool-pro{display:flex;align-items:center;gap:.6rem;padding:.6rem 0;border-bottom:1px solid var(--line);
  text-decoration:none;color:inherit}
.tool-pro:last-of-type{border-bottom:0}
.tool-pro__av{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;
  font-weight:700;color:#fff;background:hsl(var(--h,260) 60% 48%)}
.tool-pro__id{display:flex;flex-direction:column;line-height:1.25;flex:1;min-width:0}
.st-table tr.is-today{background:#FFF9E8}
@media(max-width:820px){.tool-grid{grid-template-columns:1fr 1fr}.tool-grid--9{grid-template-columns:repeat(3,1fr)}}

/* --- Espace pro : formulaire de sous-domaine (V8.3) --- */
.st-inline-form{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap;margin:.9rem 0 .2rem}
.st-inline-form label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;color:#3B3357}
.st-inline-form input{min-width:15rem;padding:.5rem .7rem;border:1px solid #DCD5EE;
  border-radius:9px;font:inherit;font-size:.9rem;background:#fff}
.st-inline-form input:focus{outline:2px solid #C9BEFB;border-color:#5B3DF5}
