/*
Theme Name: Café Sympa
Theme URI: https://example.invalid/
Author: Café Sympa
Description: Thème kawaii sur mesure pour le Café Sympa / Second Life.
Version: 0.20.47
Requires at least: 6.9
Requires PHP: 8.1
Text Domain: cafe-sympa
*/

:root{
  --cream:#fffaf4;
  --paper:#fffefe;
  --ink:#51464f;
  --muted:#806f7b;
  --pink:#f3c8d9;
  --pink-strong:#a8755a;
  --mint:#ccebdc;
  --lavender:#d9d2f3;
  --butter:#f7e7a9;
  --sky:#cae6f5;
  --line:rgba(81,70,79,.12);
  --shadow:0 16px 40px rgba(100,74,92,.12);
  --radius:28px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:
    linear-gradient(rgba(255,250,244,.14), rgba(255,250,244,.14)),
    url("assets/img/fond-cafe-sympa.webp") center center / cover fixed no-repeat;
  color:var(--ink);
  font-family:"Trebuchet MS","Segoe UI",system-ui,sans-serif;
  line-height:1.6;
  cursor:url("assets/img/paw-cursor.svg") 8 8, auto;
}
a,button,input,textarea,select{font:inherit}
a,button{cursor:url("assets/img/paw-cursor.svg") 8 8, pointer}
a{color:inherit}
img{max-width:100%;height:auto}
.container{width:min(1180px,calc(100% - 32px));margin-inline:auto}

.site-header{
  position:sticky;top:0;z-index:30;
  backdrop-filter:blur(16px);
  background:rgba(255,250,244,.88);
  border-bottom:1px solid var(--line);
}
.nav-wrap{min-height:76px;display:flex;align-items:center;gap:22px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;font-size:1.18rem;white-space:nowrap}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--butter));box-shadow:var(--shadow)}
.main-nav{display:flex;gap:8px;align-items:center;flex:1;justify-content:center;flex-wrap:wrap}
.main-nav a{text-decoration:none;padding:9px 12px;border-radius:999px;font-weight:700;font-size:.93rem}
.main-nav a:hover{background:var(--paper);box-shadow:0 5px 20px rgba(80,60,75,.08)}
.account-link{text-decoration:none;background:var(--ink);color:white!important;padding:10px 15px;border-radius:999px;font-weight:800}

.hero{padding:34px 0 20px}
.hero-banner{
  position:relative;
  overflow:hidden;
  border-radius:38px;
  background:rgba(255,255,255,.42);
  box-shadow:var(--shadow);
  border:1px solid rgba(81,70,79,.08);
}
.hero-banner img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1983/793;
  object-fit:contain;
}
.hero-actions{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  padding:18px 12px 0;
}
.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;padding:13px 18px;border-radius:999px;font-weight:900;border:1px solid rgba(81,70,79,.08);transition:.18s transform,.18s box-shadow}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(81,70,79,.14)}
.btn-primary{background:var(--ink);color:white}
.btn-soft{background:rgba(255,255,255,.72)}

.section{padding:42px 0}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}
.section h2{font-size:clamp(2rem,5vw,3.25rem);line-height:1;margin:0;letter-spacing:-.04em}
.section-lead{color:var(--muted);max-width:650px;margin:10px 0 0}
.card{
  background:rgba(255,255,255,.78);border:1px solid rgba(81,70,79,.08);
  border-radius:var(--radius);padding:24px;box-shadow:0 10px 32px rgba(100,74,92,.07);
}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.person-card{text-align:center}
.avatar-placeholder{aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--sky));margin-bottom:14px;display:grid;place-items:center;font-size:2.5rem}
.person-card:nth-child(2) .avatar-placeholder{background:linear-gradient(135deg,var(--mint),var(--butter))}
.person-card:nth-child(3) .avatar-placeholder{background:linear-gradient(135deg,var(--lavender),var(--pink))}
.person-card:nth-child(4) .avatar-placeholder{background:linear-gradient(135deg,var(--sky),var(--mint))}
.person-card:nth-child(5) .avatar-placeholder{background:linear-gradient(135deg,var(--butter),var(--pink))}
.person-card h3{margin:0}
.person-card p{font-size:.9rem;color:var(--muted);margin:5px 0 0}

.news-card{padding:0;overflow:hidden}
.thumb-placeholder{aspect-ratio:16/10;background:linear-gradient(135deg,var(--lavender),var(--pink),var(--butter));display:grid;place-items:center;font-size:2.7rem}
.news-body{padding:20px}
.meta{font-size:.82rem;font-weight:800;color:var(--pink-strong);text-transform:uppercase;letter-spacing:.05em}
.news-body h3{margin:6px 0 8px;font-size:1.25rem}

.quick-links{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.quick-link{min-height:170px;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between}
.quick-link .icon{font-size:2rem}
.quick-link:nth-child(1){background:linear-gradient(145deg,#fff,var(--pink))}
.quick-link:nth-child(2){background:linear-gradient(145deg,#fff,var(--lavender))}
.quick-link:nth-child(3){background:linear-gradient(145deg,#fff,var(--mint))}
.quick-link:nth-child(4){background:linear-gradient(145deg,#fff,var(--butter))}

.fund-box{display:grid;grid-template-columns:1.4fr .6fr;gap:24px;align-items:center;background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(243,200,217,.56))}
.progress{height:18px;border-radius:999px;background:rgba(81,70,79,.1);overflow:hidden}
.progress > span{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--pink-strong),var(--lavender));border-radius:inherit}
.fund-number{font-size:2rem;font-weight:900;margin:12px 0 4px}

.site-footer{margin-top:50px;padding:42px 0;border-top:1px solid var(--line)}
.footer-grid{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.footer-links{display:flex;gap:14px;flex-wrap:wrap}
.footer-links a{color:var(--muted)}

.page-shell{padding:55px 0}
.page-shell article{background:rgba(255,255,255,.78);border-radius:var(--radius);padding:clamp(22px,5vw,50px);box-shadow:var(--shadow)}
.page-shell h1{font-size:clamp(2.3rem,6vw,4rem);line-height:1;margin-top:0}

@media(max-width:900px){
  .nav-wrap{align-items:flex-start;padding:14px 0;flex-wrap:wrap}
  .main-nav{order:3;width:100%;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  .account-link{margin-left:auto}
  .hero{padding-top:20px}
  .hero-banner{border-radius:28px}
  .grid-3{grid-template-columns:1fr 1fr}
  .grid-5{grid-template-columns:repeat(3,1fr)}
  .quick-links{grid-template-columns:1fr 1fr}
  .fund-box{grid-template-columns:1fr}
}
@media(max-width:600px){
  .container{width:min(100% - 20px,1180px)}
  .grid-3,.grid-5,.quick-links{grid-template-columns:1fr}
  .section{padding:30px 0}
  .hero-banner{border-radius:22px}
  .brand{font-size:1rem}
}


/* ===== Comptes & forum ===== */
.cafe-panel,.cafe-forum,.cafe-topic-page{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(81,70,79,.10);
  border-radius:var(--radius);
  padding:clamp(22px,4vw,38px);
  box-shadow:var(--shadow);
  backdrop-filter:blur(7px);
}
.cafe-auth{max-width:720px;margin-inline:auto}
.cafe-kicker{
  display:inline-flex;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(243,200,217,.54);
  font-size:.82rem;
  font-weight:900;
}
.cafe-panel h2,.cafe-forum h2{font-size:clamp(2rem,5vw,3rem);line-height:1;margin:14px 0}
.cafe-form{display:grid;gap:16px;margin-top:22px}
.cafe-form label{display:grid;gap:7px;font-weight:800}
.cafe-form input,.cafe-form textarea,
.cafe-auth .login-username input,.cafe-auth .login-password input,
.cafe-reply-box textarea{
  width:100%;
  border:1px solid rgba(81,70,79,.16);
  background:rgba(255,255,255,.86);
  border-radius:16px;
  padding:12px 14px;
  color:var(--ink);
  outline:none;
}
.cafe-form input:focus,.cafe-form textarea:focus,
.cafe-auth input:focus,.cafe-reply-box textarea:focus{
  border-color:var(--pink-strong);
  box-shadow:0 0 0 4px rgba(220,142,176,.12);
}
.cafe-auth #wp-submit,.cafe-reply-box #submit{
  border:0;
  background:var(--ink);
  color:#fff;
  padding:12px 18px;
  border-radius:999px;
  font-weight:900;
}
.cafe-form-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}
.cafe-small{font-size:.9rem;color:var(--muted)}
.cafe-alert{padding:14px 16px;border-radius:16px;background:rgba(247,231,169,.45);margin:16px 0}
.cafe-alert-error{background:rgba(242,183,183,.44)}
.cafe-alert-ok{background:rgba(204,235,220,.65)}
.cafe-sl-code{
  display:grid;place-items:center;gap:4px;
  margin:22px auto;padding:22px;max-width:360px;
  background:linear-gradient(135deg,var(--pink),var(--lavender));
  border-radius:24px;text-align:center;
}
.cafe-sl-code small{font-weight:900;letter-spacing:.18em}
.cafe-sl-code strong{font-size:clamp(2rem,8vw,3.6rem);letter-spacing:.12em}
.cafe-steps{padding-left:24px}
.cafe-steps li{margin:7px 0}
.cafe-account-grid{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:start}
.cafe-account-actions{display:grid;gap:10px}
.cafe-badge{
  display:inline-flex;margin:4px 6px 4px 0;padding:6px 10px;border-radius:999px;
  background:var(--lavender);font-size:.8rem;font-weight:900
}
.cafe-badge-ok{background:var(--mint)}
.cafe-data{display:grid;grid-template-columns:max-content 1fr;gap:8px 16px;margin:22px 0 0}
.cafe-data dt{font-weight:900}
.cafe-data dd{margin:0;color:var(--muted)}

.cafe-forum-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}
.cafe-forum-toolbar p{margin-bottom:0;color:var(--muted)}
.cafe-topic-list{display:grid;gap:10px}
.cafe-topic-row{
  display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;
  padding:17px 18px;text-decoration:none;border-radius:18px;
  background:rgba(255,255,255,.72);border:1px solid rgba(81,70,79,.08);
  transition:.18s transform,.18s box-shadow;
}
.cafe-topic-row:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(81,70,79,.09)}
.cafe-topic-main{display:grid;gap:3px}
.cafe-topic-main strong{font-size:1.05rem}
.cafe-topic-main span,.cafe-topic-replies span{font-size:.82rem;color:var(--muted)}
.cafe-topic-replies{text-align:center;min-width:72px}
.cafe-topic-replies strong{font-size:1.35rem;display:block}
.cafe-empty{text-align:center;padding:50px 20px;color:var(--muted)}
.cafe-empty>div{font-size:3rem}

.cafe-topic-page{padding:clamp(22px,5vw,50px)}
.cafe-back{text-decoration:none;font-weight:800;color:var(--muted)}
.cafe-topic-head{padding:24px 0;border-bottom:1px solid var(--line)}
.cafe-topic-head h1{margin:12px 0 8px}
.cafe-topic-message{font-size:1.06rem;padding:28px 0}
.cafe-replies{border-top:1px solid var(--line);padding-top:24px}
.cafe-comment-list{list-style:none;padding:0;display:grid;gap:12px}
.cafe-comment-list .comment-body{
  background:rgba(255,255,255,.74);
  border:1px solid rgba(81,70,79,.08);
  border-radius:18px;
  padding:16px;
}
.cafe-comment-list .comment-meta{font-size:.86rem;color:var(--muted)}
.cafe-comment-list .children{list-style:none;margin-top:10px}
.cafe-reply-box{margin-top:24px;padding:20px;border-radius:20px;background:rgba(217,210,243,.25)}

.home-forum-list{display:grid;gap:10px}
.home-forum-topic{
  display:flex;justify-content:space-between;gap:14px;text-decoration:none;
  padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.72);
  border:1px solid rgba(81,70,79,.08)
}
.home-forum-topic span{color:var(--muted);font-size:.88rem}

@media(max-width:700px){
  .cafe-account-grid{grid-template-columns:1fr}
  .cafe-forum-toolbar{align-items:flex-start;flex-direction:column}
  .cafe-topic-row{grid-template-columns:1fr}
  .cafe-topic-replies{text-align:left}
  .cafe-data{grid-template-columns:1fr;gap:2px}
  .cafe-data dd{margin-bottom:10px}
}


/* ===== Profil SL & annonces ===== */
.cafe-profile-layout{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);
  gap:24px;
  align-items:start;
  margin-top:22px;
}
.cafe-avatar-card{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:22px;
  align-items:center;
  padding:20px;
  border-radius:24px;
  background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(243,200,217,.24));
  border:1px solid rgba(81,70,79,.08);
}
.cafe-avatar-preview{
  width:180px;
  aspect-ratio:1;
  border-radius:28px;
  overflow:hidden;
  background:linear-gradient(135deg,var(--pink),var(--lavender),var(--mint));
  box-shadow:0 12px 28px rgba(81,70,79,.12);
}
.cafe-avatar-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.cafe-avatar-empty{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  font-size:4rem;
}
.cafe-avatar-card h3{margin:0 0 6px}
.cafe-avatar-card p{margin:0 0 14px;color:var(--muted)}
.cafe-avatar-form{display:grid;gap:10px}
.cafe-file-field{
  display:grid;
  gap:6px;
  font-weight:800;
}
.cafe-file-field input{
  max-width:100%;
  padding:9px;
  border-radius:14px;
  background:rgba(255,255,255,.7);
  border:1px dashed rgba(81,70,79,.22);
}
.cafe-remove-avatar{margin-top:9px}
.cafe-text-button{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  color:var(--muted);
  text-decoration:underline;
  cursor:pointer;
}
.cafe-text-button:hover{color:var(--ink)}
.cafe-sl-avatar{
  object-fit:cover;
  border-radius:50%;
}
.cafe-my-news{
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid var(--line);
}
.cafe-my-news h3{margin-top:0}
.cafe-my-news-list{display:grid;gap:9px}
.cafe-my-news-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:13px 15px;
  border-radius:15px;
  background:rgba(255,255,255,.64);
}
.cafe-status{
  flex:none;
  padding:5px 9px;
  border-radius:999px;
  font-size:.76rem;
  font-weight:900;
}
.cafe-status-publish{background:var(--mint)}
.cafe-status-pending{background:var(--butter)}
.cafe-status-draft{background:var(--lavender)}
.cafe-form select{
  width:100%;
  border:1px solid rgba(81,70,79,.16);
  background:rgba(255,255,255,.86);
  border-radius:16px;
  padding:12px 14px;
  color:var(--ink);
  outline:none;
}

@media(max-width:820px){
  .cafe-profile-layout{grid-template-columns:1fr}
}
@media(max-width:560px){
  .cafe-avatar-card{grid-template-columns:1fr}
  .cafe-avatar-preview{width:min(220px,100%);margin-inline:auto}
  .cafe-my-news-row{align-items:flex-start;flex-direction:column}
}


/* ===== Acteurs principaux ===== */
.actor-card{
  position:relative;
  overflow:hidden;
  text-align:center;
  padding:18px 14px 20px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(81,70,79,.08);
  border-radius:26px;
  box-shadow:0 10px 32px rgba(100,74,92,.07);
  transition:.2s transform,.2s box-shadow;
}
.actor-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 38px rgba(100,74,92,.13);
}
.actor-portrait{
  width:min(100%,220px);
  aspect-ratio:1;
  margin:0 auto 14px;
  border-radius:50%;
  overflow:hidden;
  border:5px solid rgba(183,137,62,.76);
  background:#f8ead1;
  box-shadow:
    0 0 0 5px rgba(255,255,255,.72),
    0 12px 28px rgba(81,70,79,.14);
}
.actor-portrait img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.actor-card h3{
  margin:8px 0 2px;
  font-size:1.08rem;
}
.actor-card p{
  margin:0;
  color:var(--muted);
  font-size:.88rem;
}
.actor-card::after{
  content:"🐾";
  position:absolute;
  right:12px;
  top:10px;
  opacity:.14;
  font-size:1.2rem;
}

@media(max-width:900px){
  .grid-5.actors-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:620px){
  .grid-5.actors-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:420px){
  .grid-5.actors-grid{grid-template-columns:1fr}
}


/* Correctif 0.5.1 : centrage des portraits */
.actor-portrait img{
  object-position:center center;
  transform:scale(1.035);
}


/* ===== Acteurs principaux — 6 portraits ===== */
.grid-5.actors-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:980px;
  margin-inline:auto;
  gap:24px;
}
.actor-card p{
  min-height:1.45em;
  font-weight:800;
  color:var(--pink-strong);
}
@media(max-width:800px){
  .grid-5.actors-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:460px){
  .grid-5.actors-grid{grid-template-columns:1fr}
}


/* ===== Correctif 0.6.1 : acteurs sur une seule ligne ===== */
.grid-5.actors-grid{
  grid-template-columns:repeat(6,minmax(0,1fr));
  max-width:1180px;
  margin-inline:auto;
  gap:14px;
}

.actor-card{
  padding:14px 10px 16px;
  border-radius:22px;
  min-width:0;
}

.actor-portrait{
  width:min(100%,145px);
  margin:0 auto 10px;
  border-width:4px;
  box-shadow:
    0 0 0 3px rgba(255,255,255,.68),
    0 8px 20px rgba(81,70,79,.12);
}

.actor-card h3{
  margin:6px 0 2px;
  font-size:.98rem;
  line-height:1.15;
}

.actor-card p{
  margin:0;
  min-height:auto;
  font-size:.78rem;
  line-height:1.2;
  font-weight:800;
}

.actor-card::after{
  right:8px;
  top:7px;
  font-size:.95rem;
}

@media(max-width:1050px){
  .grid-5.actors-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    max-width:760px;
  }
  .actor-portrait{
    width:min(100%,170px);
  }
}

@media(max-width:650px){
  .grid-5.actors-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:480px;
  }
}

@media(max-width:390px){
  .grid-5.actors-grid{
    grid-template-columns:1fr;
    max-width:250px;
  }
}


/* ===== Pages publiques : événements, BD, musique, artwork ===== */
.cafe-public-head{
  margin-bottom:28px;
}
.cafe-public-head h2{
  font-size:clamp(2.1rem,5vw,3.6rem);
  line-height:1;
  margin:14px 0 8px;
  letter-spacing:-.04em;
}
.cafe-public-head p{
  color:var(--muted);
  max-width:700px;
  margin:0;
}

.cafe-event-grid,
.cafe-bd-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.cafe-content-card{
  overflow:hidden;
  border-radius:26px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(81,70,79,.08);
  box-shadow:0 12px 30px rgba(81,70,79,.08);
}
.cafe-content-cover{
  display:block;
  aspect-ratio:16/10;
  overflow:hidden;
  background:linear-gradient(135deg,var(--pink),var(--lavender));
}
.cafe-content-cover img,
.cafe-bd-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.cafe-content-body{
  padding:18px;
}
.cafe-content-body h3{
  margin:8px 0 6px;
  font-size:1.2rem;
}
.cafe-content-body h3 a{
  text-decoration:none;
}
.cafe-content-meta{
  margin:3px 0 8px;
  color:var(--muted);
  font-size:.88rem;
}
.cafe-date-pill,
.cafe-mini-label{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(243,200,217,.56);
  color:var(--ink);
  font-size:.76rem;
  font-weight:900;
}
.cafe-card-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
}
.cafe-card-actions .btn{
  padding:9px 12px;
  font-size:.82rem;
}
.cafe-cover-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  min-height:180px;
  font-size:3rem;
  background:linear-gradient(135deg,var(--pink),var(--lavender),var(--mint));
}

.cafe-bd-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.cafe-bd-card{
  display:flex;
  flex-direction:column;
}
.cafe-bd-cover{
  display:block;
  aspect-ratio:3/4;
  overflow:hidden;
  background:linear-gradient(135deg,var(--butter),var(--pink));
}
.cafe-bd-card .cafe-content-body{
  display:flex;
  flex-direction:column;
  flex:1;
}
.cafe-bd-card .cafe-card-actions{
  margin-top:auto;
}

.cafe-music-list{
  display:grid;
  gap:14px;
}
.cafe-music-card{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:18px;
  align-items:center;
  padding:14px;
  border-radius:22px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(81,70,79,.08);
  box-shadow:0 10px 26px rgba(81,70,79,.07);
}
.cafe-music-cover{
  aspect-ratio:1;
  border-radius:18px;
  overflow:hidden;
  background:linear-gradient(135deg,var(--lavender),var(--pink));
}
.cafe-music-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.cafe-music-cover .cafe-cover-placeholder{
  min-height:0;
}
.cafe-music-info h3{
  margin:5px 0 10px;
}
.cafe-music-info h3 a{
  text-decoration:none;
}
.cafe-music-info audio{
  width:min(100%,640px);
  display:block;
}

.cafe-art-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.cafe-art-card{
  position:relative;
  min-height:330px;
  overflow:hidden;
  border-radius:26px;
  background:var(--paper);
  box-shadow:0 12px 30px rgba(81,70,79,.09);
}
.cafe-art-image{
  position:absolute;
  inset:0;
  display:block;
}
.cafe-art-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.cafe-art-image .cafe-cover-placeholder{
  height:100%;
}
.cafe-art-overlay{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:54px 18px 18px;
  background:linear-gradient(transparent,rgba(40,33,38,.82));
  color:#fff;
}
.cafe-art-overlay h3{
  margin:7px 0 12px;
}
.cafe-art-overlay h3 a{
  color:#fff;
  text-decoration:none;
}
.cafe-art-overlay .cafe-mini-label{
  background:rgba(255,255,255,.82);
  color:var(--ink);
}
.cafe-art-overlay .btn{
  padding:9px 12px;
  font-size:.82rem;
}
.cafe-public-empty{
  background:rgba(255,255,255,.72);
  border-radius:24px;
  border:1px solid rgba(81,70,79,.08);
}

.home-events-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.home-event{
  display:grid;
  gap:5px;
  text-decoration:none;
  padding:16px;
  border-radius:18px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(81,70,79,.08);
}
.home-event-date{
  font-size:.78rem;
  font-weight:900;
  color:var(--pink-strong);
}
.home-event strong{
  line-height:1.2;
}
.home-event span:last-child{
  color:var(--muted);
  font-size:.84rem;
}

@media(max-width:950px){
  .cafe-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cafe-bd-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cafe-art-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-events-grid{grid-template-columns:1fr}
}
@media(max-width:650px){
  .cafe-event-grid,
  .cafe-bd-grid,
  .cafe-art-grid{
    grid-template-columns:1fr;
  }
  .cafe-music-card{
    grid-template-columns:84px 1fr;
    gap:12px;
  }
}


/* ===== Espace Staff frontal ===== */
.cafe-actor-dashboard{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(81,70,79,.09);
  border-radius:var(--radius);
  padding:clamp(22px,4vw,38px);
  box-shadow:var(--shadow);
  backdrop-filter:blur(7px);
}
.cafe-actor-hero{
  margin-bottom:24px;
}
.cafe-actor-hero h2{
  font-size:clamp(2rem,5vw,3.3rem);
  line-height:1;
  margin:14px 0 8px;
}
.cafe-actor-hero p{
  max-width:760px;
  color:var(--muted);
}
.cafe-actor-actions-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.cafe-actor-action{
  min-height:190px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:6px;
  text-decoration:none;
  padding:20px;
  border-radius:22px;
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(243,200,217,.28));
  border:1px solid rgba(81,70,79,.08);
  box-shadow:0 10px 24px rgba(81,70,79,.06);
  transition:.2s transform,.2s box-shadow;
}
.cafe-actor-action:nth-child(2){background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(247,231,169,.34))}
.cafe-actor-action:nth-child(3){background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(217,210,243,.34))}
.cafe-actor-action:nth-child(4){background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(202,230,245,.38))}
.cafe-actor-action:nth-child(5){background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(204,235,220,.40))}
.cafe-actor-action-admin{background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(220,142,176,.34))!important}
.cafe-actor-action:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 30px rgba(81,70,79,.11);
}
.cafe-actor-icon{
  font-size:2rem;
  margin-bottom:auto;
}
.cafe-actor-action strong{
  font-size:1.25rem;
}
.cafe-actor-action span:last-child{
  color:var(--muted);
  font-size:.9rem;
}
.cafe-my-content{
  margin-top:30px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.cafe-mini-stats{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:12px 0 18px;
}
.cafe-mini-stats span{
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.68);
  border:1px solid rgba(81,70,79,.08);
  font-size:.8rem;
  font-weight:800;
}
.cafe-submission-list{
  display:grid;
  gap:9px;
}
.cafe-submission-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 15px;
  border-radius:16px;
  background:rgba(255,255,255,.68);
  border:1px solid rgba(81,70,79,.07);
}
.cafe-submission-row>div{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.cafe-submission-row strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-actor-form-page{
  max-width:850px;
  margin-inline:auto;
}
.cafe-form-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.cafe-form small{
  color:var(--muted);
  font-weight:400;
}

.cafe-validation-page{
  max-width:1100px;
  margin-inline:auto;
}
.cafe-validation-list{
  display:grid;
  gap:16px;
  margin-top:24px;
}
.cafe-validation-card{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:20px;
  padding:16px;
  border-radius:22px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(81,70,79,.08);
}
.cafe-validation-thumb{
  aspect-ratio:1;
  overflow:hidden;
  border-radius:18px;
  background:linear-gradient(135deg,var(--pink),var(--lavender));
}
.cafe-validation-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.cafe-validation-thumb .cafe-cover-placeholder{
  min-height:100%;
}
.cafe-validation-main h3{
  margin:6px 0 4px;
  font-size:1.35rem;
}
.cafe-validation-excerpt{
  color:var(--ink);
}
.cafe-validation-excerpt p{
  margin:.4em 0;
}
.cafe-validation-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.cafe-validation-actions form{
  margin:0;
}
.cafe-btn-danger{
  background:#6d3a45;
  color:#fff;
  border:1px solid rgba(109,58,69,.1);
}

@media(max-width:850px){
  .cafe-actor-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cafe-validation-card{grid-template-columns:120px 1fr}
}
@media(max-width:580px){
  .cafe-actor-actions-grid{grid-template-columns:1fr}
  .cafe-form-two{grid-template-columns:1fr}
  .cafe-validation-card{grid-template-columns:1fr}
  .cafe-validation-thumb{max-width:180px}
  .cafe-submission-row{align-items:flex-start;flex-direction:column}
  .cafe-submission-row>div{align-items:flex-start;flex-direction:column}
}


/* ===== Artwork : aperçu + téléchargement ===== */
.cafe-art-image{
  width:100%;
  border:0;
  padding:0;
  margin:0;
  cursor:pointer;
  background:transparent;
}
.cafe-art-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.cafe-art-actions .btn{
  font-size:.8rem;
  padding:9px 12px;
}
.cafe-art-actions button.btn{
  border:1px solid rgba(255,255,255,.28);
}

.cafe-art-modal[hidden]{
  display:none!important;
}
.cafe-art-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:22px;
}
.cafe-art-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(28,24,27,.82);
  backdrop-filter:blur(8px);
}
.cafe-art-modal-dialog{
  position:relative;
  z-index:1;
  width:min(1180px,96vw);
  max-height:92vh;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  overflow:hidden;
  border-radius:26px;
  background:rgba(255,250,244,.98);
  box-shadow:0 30px 90px rgba(0,0,0,.34);
}
.cafe-art-modal-visual{
  min-height:0;
  display:grid;
  place-items:center;
  background:#201d1f;
  overflow:auto;
}
.cafe-art-modal-visual img{
  display:block;
  max-width:100%;
  max-height:76vh;
  width:auto;
  height:auto;
  object-fit:contain;
}
.cafe-art-modal-info{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding:14px 18px;
}
.cafe-art-modal-info h3{
  margin:0;
  margin-right:auto;
  font-size:1.08rem;
}
.cafe-art-modal-close{
  position:absolute;
  top:12px;
  right:12px;
  z-index:3;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.9);
  color:var(--ink);
  font-size:1.8rem;
  line-height:1;
  box-shadow:0 8px 22px rgba(0,0,0,.18);
}
body.cafe-modal-open{
  overflow:hidden;
}

@media(max-width:650px){
  .cafe-art-modal{
    padding:10px;
  }
  .cafe-art-modal-dialog{
    width:100%;
    max-height:94vh;
    border-radius:20px;
  }
  .cafe-art-modal-info{
    align-items:flex-start;
    flex-direction:column;
  }
  .cafe-art-modal-info h3{
    margin-right:0;
  }
  .cafe-art-modal-info .btn{
    width:100%;
    justify-content:center;
  }
}


/* ===== Correctif Artwork 0.8.2 : boutons toujours visibles ===== */
.cafe-art-card-v2{
  overflow:hidden;
  border-radius:24px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(81,70,79,.08);
  box-shadow:0 12px 30px rgba(81,70,79,.09);
}

.cafe-art-preview-image{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/11;
  overflow:hidden;
  background:linear-gradient(135deg,var(--pink),var(--lavender),var(--mint));
  text-decoration:none;
}

.cafe-art-preview-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}

.cafe-art-preview-image:hover img{
  transform:scale(1.025);
}

.cafe-art-zoom-hint{
  position:absolute;
  right:10px;
  bottom:10px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(38,32,36,.78);
  color:#fff;
  font-size:.76rem;
  font-weight:900;
  backdrop-filter:blur(6px);
}

.cafe-art-card-body{
  padding:16px;
}

.cafe-art-card-body h3{
  margin:8px 0 6px;
  font-size:1.12rem;
}

.cafe-art-card-body p{
  margin:0 0 14px;
  color:var(--muted);
  font-size:.9rem;
}

.cafe-art-card-buttons{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}

.cafe-art-card-buttons .btn{
  flex:1;
  justify-content:center;
  min-width:120px;
  padding:10px 12px;
  font-size:.82rem;
}

.cafe-art-no-image{
  cursor:default;
}

@media(max-width:650px){
  .cafe-art-card-buttons{
    flex-direction:column;
  }
  .cafe-art-card-buttons .btn{
    width:100%;
  }
}


/* ===== Artwork : page dédiée + fiche individuelle ===== */
.cafe-artwork-page-shell{
  padding:48px 0;
}
.cafe-artwork-page-shell > .container{
  background:rgba(48,43,39,.92);
  color:#eee6ed;
  border-radius:34px;
  padding:clamp(24px,4vw,46px);
  box-shadow:var(--shadow);
}
.cafe-artwork-page-shell .cafe-public-head p{
  color:rgba(238,230,237,.72);
}
.cafe-artwork-page-shell .cafe-art-card-v2{
  color:var(--ink);
}

.cafe-artwork-single{
  background:rgba(48,43,39,.92);
  color:#eee6ed;
  border-radius:34px;
  padding:clamp(24px,4vw,46px);
  box-shadow:var(--shadow);
}
.cafe-artwork-single .meta{
  color:#e99abc;
}
.cafe-artwork-single h1{
  color:#eee6ed;
  margin-bottom:22px;
}
.cafe-artwork-single-preview{
  display:block;
  width:min(100%,1180px);
  margin:0 auto;
  border-radius:22px;
  overflow:hidden;
  background:#211e20;
}
.cafe-artwork-single-preview img{
  display:block;
  width:100%;
  height:auto;
}
.cafe-artwork-single-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:22px 0;
}
.cafe-artwork-single-actions .btn{
  min-width:160px;
  justify-content:center;
}
.cafe-artwork-single-content{
  margin-top:20px;
  color:rgba(238,230,237,.88);
}
.cafe-artwork-back{
  display:inline-block;
  margin-bottom:18px;
  color:rgba(238,230,237,.78);
  font-weight:800;
  text-decoration:none;
}


/* ===== Bibliothèque et lecteur BD ===== */
.cafe-bd-library-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start;
}

.cafe-bd-library-card{
  overflow:hidden;
  border-radius:24px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(81,70,79,.08);
  box-shadow:0 12px 30px rgba(81,70,79,.08);
}

.cafe-bd-library-cover{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:3/4;
  padding:0;
  border:0;
  overflow:hidden;
  background:linear-gradient(135deg,var(--pink),var(--lavender));
  cursor:pointer;
}

.cafe-bd-library-cover:disabled{
  cursor:default;
}

.cafe-bd-library-cover img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .25s ease;
}

.cafe-bd-library-cover:not(:disabled):hover img{
  transform:scale(1.025);
}

.cafe-bd-read-badge{
  position:absolute;
  right:10px;
  bottom:10px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(44,37,42,.84);
  color:white;
  font-size:.76rem;
  font-weight:900;
  backdrop-filter:blur(6px);
}

.cafe-bd-library-body{
  padding:15px;
}

.cafe-bd-library-title{
  display:block;
  width:100%;
  border:0;
  padding:0;
  margin:8px 0 5px;
  background:transparent;
  color:var(--ink);
  text-align:left;
  font-size:1.08rem;
  line-height:1.2;
  font-weight:900;
  cursor:pointer;
}

.cafe-bd-library-title:disabled{
  cursor:default;
}

.cafe-bd-library-title:not(:disabled):hover{
  text-decoration:underline;
}

.cafe-bd-page-count{
  color:var(--muted);
  font-size:.82rem;
}

/* Formulaire BD */
.cafe-bd-covers-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.cafe-bd-upload-box,
.cafe-bd-pages-builder{
  padding:17px;
  border-radius:22px;
  background:rgba(255,255,255,.64);
  border:1px solid rgba(81,70,79,.08);
}

.cafe-bd-upload-title{
  display:block;
  margin-bottom:10px;
  font-weight:900;
}

.cafe-bd-upload-preview{
  display:grid;
  place-items:center;
  gap:4px;
  aspect-ratio:3/4;
  max-height:310px;
  margin-bottom:12px;
  overflow:hidden;
  border-radius:18px;
  background:linear-gradient(145deg,var(--butter),rgba(255,255,255,.82));
  color:var(--muted);
}

.cafe-bd-upload-preview > span{
  font-size:2.5rem;
}

.cafe-bd-upload-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.cafe-bd-file-button,
.cafe-bd-add-page{
  position:relative;
  overflow:hidden;
  justify-content:center;
}

.cafe-bd-file-button input,
.cafe-bd-add-page input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}

.cafe-bd-upload-status{
  display:block;
  min-height:1.3em;
  margin-top:7px;
  color:var(--muted);
  font-size:.8rem;
  font-weight:800;
}

.cafe-bd-upload-status.is-error{
  color:#9a4054;
}

.cafe-bd-pages-builder{
  display:grid;
  gap:14px;
}

.cafe-bd-pages-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}

.cafe-bd-pages-head p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:.86rem;
}

.cafe-bd-pages-total{
  flex:none;
  padding:6px 9px;
  border-radius:999px;
  background:var(--lavender);
  font-size:.78rem;
  font-weight:900;
}

.cafe-bd-pages-list{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}

.cafe-bd-page-row{
  min-width:0;
}

.cafe-bd-page-thumb{
  aspect-ratio:3/4;
  overflow:hidden;
  border-radius:12px;
  background:var(--paper);
  border:1px solid rgba(81,70,79,.1);
}

.cafe-bd-page-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.cafe-bd-page-row strong{
  display:block;
  margin-top:5px;
  text-align:center;
  font-size:.76rem;
}

/* Lecteur BD plein écran */
.cafe-bd-reader[hidden]{
  display:none!important;
}

.cafe-bd-reader{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  background:rgba(22,19,21,.98);
  color:#fff;
}

.cafe-bd-reader-topbar,
.cafe-bd-reader-bottom{
  min-height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 18px;
  background:rgba(31,27,30,.98);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.cafe-bd-reader-bottom{
  min-height:42px;
  justify-content:center;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:0;
  color:rgba(255,255,255,.55);
  font-size:.78rem;
}

.cafe-bd-reader-title-wrap{
  display:grid;
  gap:2px;
  min-width:0;
}

.cafe-bd-reader-title-wrap strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-bd-reader-title-wrap span{
  color:#ef9cbe;
  font-size:.82rem;
  font-weight:800;
}

.cafe-bd-reader-tools{
  display:flex;
  align-items:center;
  gap:12px;
  flex:none;
}

.cafe-bd-reader-tools > span{
  color:rgba(255,255,255,.65);
  font-size:.82rem;
}

.cafe-bd-reader-close{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:1.8rem;
  line-height:1;
}

.cafe-bd-reader-stage{
  position:relative;
  min-height:0;
  display:grid;
  grid-template-columns:76px minmax(0,1fr) 76px;
  align-items:center;
}

.cafe-bd-reader-page-wrap{
  height:100%;
  min-height:0;
  display:grid;
  place-items:center;
  padding:14px;
  perspective:1400px;
}

.cafe-bd-reader-page-wrap img{
  display:block;
  max-width:100%;
  max-height:calc(100vh - 135px);
  width:auto;
  height:auto;
  object-fit:contain;
  box-shadow:0 18px 60px rgba(0,0,0,.48);
  transform-origin:center left;
}

.cafe-bd-reader-page-wrap img.is-turning-next{
  animation:cafeBdTurnNext .22s ease;
}

.cafe-bd-reader-page-wrap img.is-turning-prev{
  animation:cafeBdTurnPrev .22s ease;
}

@keyframes cafeBdTurnNext{
  0%{opacity:.45;transform:translateX(22px) rotateY(-5deg)}
  100%{opacity:1;transform:none}
}

@keyframes cafeBdTurnPrev{
  0%{opacity:.45;transform:translateX(-22px) rotateY(5deg)}
  100%{opacity:1;transform:none}
}

.cafe-bd-reader-nav{
  width:56px;
  height:76px;
  justify-self:center;
  border:0;
  border-radius:18px;
  background:rgba(255,255,255,.09);
  color:#fff;
  font-size:3rem;
  line-height:1;
}

.cafe-bd-reader-nav:hover:not(:disabled){
  background:rgba(255,255,255,.17);
}

.cafe-bd-reader-nav:disabled{
  opacity:.18;
  cursor:default;
}

body.cafe-bd-reader-open{
  overflow:hidden;
}

/* Fiche BD directe */
.cafe-bd-single-reader-launch{
  display:grid;
  justify-items:start;
  gap:16px;
}

.cafe-bd-single-cover{
  position:relative;
  display:block;
  max-width:440px;
  padding:0;
  border:0;
  border-radius:22px;
  overflow:hidden;
  background:transparent;
}

.cafe-bd-single-cover img{
  display:block;
  width:100%;
  height:auto;
}

.cafe-bd-single-cover span{
  position:absolute;
  right:12px;
  bottom:12px;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(39,33,37,.84);
  color:white;
  font-weight:900;
}

@media(max-width:950px){
  .cafe-bd-library-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .cafe-bd-pages-list{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .cafe-bd-library-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .cafe-bd-covers-grid{
    grid-template-columns:1fr 1fr;
  }
  .cafe-bd-pages-list{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .cafe-bd-reader-stage{
    grid-template-columns:48px minmax(0,1fr) 48px;
  }
  .cafe-bd-reader-nav{
    width:42px;
    height:62px;
    font-size:2.4rem;
  }
}

@media(max-width:480px){
  .cafe-bd-covers-grid{
    grid-template-columns:1fr;
  }
  .cafe-bd-pages-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .cafe-bd-reader-topbar{
    min-height:58px;
    padding:8px 10px;
  }
  .cafe-bd-reader-stage{
    grid-template-columns:38px minmax(0,1fr) 38px;
  }
  .cafe-bd-reader-page-wrap{
    padding:7px;
  }
  .cafe-bd-reader-nav{
    width:34px;
    height:54px;
    border-radius:12px;
    font-size:2rem;
  }
}


/* ===== Lecteur BD : loupe / zoom ===== */
.cafe-bd-reader-zoom{
  min-width:88px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#fff;
  padding:0 12px;
  font-weight:900;
  font-size:.82rem;
}

.cafe-bd-reader-zoom:hover{
  background:rgba(255,255,255,.19);
}

.cafe-bd-reader-page-wrap{
  overflow:auto;
}

.cafe-bd-reader-page-wrap img{
  transition:
    transform .18s ease,
    max-width .18s ease,
    max-height .18s ease;
}

.cafe-bd-reader-page-wrap.is-zoomed{
  display:block;
  text-align:center;
}

.cafe-bd-reader-page-wrap.is-zoomed img{
  max-width:none;
  max-height:none;
  margin:18px auto;
  transform-origin:top center;
}

.cafe-bd-reader-page-wrap.zoom-150 img{
  width:150%;
}

.cafe-bd-reader-page-wrap.zoom-200 img{
  width:200%;
}

@media(max-width:560px){
  .cafe-bd-reader-zoom{
    min-width:72px;
    padding:0 9px;
  }
}


/* ===== Albums Musique ===== */
.cafe-album-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

.cafe-album-card{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  overflow:hidden;
  border-radius:26px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(81,70,79,.08);
  box-shadow:0 12px 30px rgba(81,70,79,.08);
}

.cafe-album-cover{
  min-height:100%;
  aspect-ratio:1;
  overflow:hidden;
  background:linear-gradient(135deg,var(--pink),var(--lavender));
}

.cafe-album-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.cafe-album-body{
  padding:18px;
  min-width:0;
}

.cafe-album-body h3{
  margin:7px 0 2px;
}

.cafe-album-body h3 a{
  text-decoration:none;
}

.cafe-album-track-count{
  display:block;
  margin-bottom:14px;
  color:var(--muted);
  font-size:.82rem;
}

.cafe-album-track-list{
  display:grid;
  gap:11px;
}

.cafe-album-track{
  padding:11px;
  border-radius:15px;
  background:rgba(247,243,238,.76);
  border:1px solid rgba(81,70,79,.07);
}

.cafe-track-heading{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
}

.cafe-track-number{
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--pink);
  font-size:.72rem;
  font-weight:900;
}

.cafe-track-heading strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-track-format{
  color:var(--muted);
  font-size:.68rem;
  font-weight:900;
}

.cafe-album-track audio{
  width:100%;
  height:36px;
  display:block;
}

.cafe-track-download{
  display:inline-block;
  margin-top:6px;
  color:var(--pink-strong);
  font-size:.77rem;
  font-weight:900;
}

/* Constructeur album Acteur */
.cafe-music-tracks-builder{
  display:grid;
  gap:14px;
  padding:18px;
  border-radius:22px;
  background:rgba(255,255,255,.64);
  border:1px solid rgba(81,70,79,.08);
}

.cafe-music-tracks-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}

.cafe-music-tracks-head p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:.86rem;
}

.cafe-music-track-total{
  flex:none;
  padding:6px 9px;
  border-radius:999px;
  background:var(--lavender);
  font-size:.78rem;
  font-weight:900;
}

.cafe-music-track-list{
  display:grid;
  gap:10px;
}

.cafe-music-track-row{
  display:grid;
  grid-template-columns:42px 170px minmax(180px,1fr);
  gap:10px 14px;
  align-items:center;
  padding:12px;
  border-radius:17px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(81,70,79,.07);
}

.cafe-music-track-index{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--pink);
  font-weight:900;
}

.cafe-music-track-file{
  display:grid;
  gap:2px;
  min-width:0;
}

.cafe-music-track-file strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.82rem;
}

.cafe-music-track-file span{
  color:var(--muted);
  font-size:.7rem;
  font-weight:900;
}

.cafe-music-track-title{
  display:grid;
  gap:4px;
  font-size:.75rem;
  font-weight:900;
}

.cafe-music-track-title input{
  width:100%;
  padding:9px 10px;
  border:1px solid rgba(81,70,79,.14);
  border-radius:12px;
  background:#fff;
}

.cafe-music-track-row audio{
  grid-column:2 / -1;
  width:100%;
  height:36px;
}

.cafe-music-add-track{
  position:relative;
  overflow:hidden;
  justify-content:center;
  width:max-content;
  max-width:100%;
}

.cafe-music-add-track input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}

.cafe-music-upload-status{
  min-height:1.3em;
  color:var(--muted);
  font-size:.82rem;
  font-weight:800;
}

.cafe-music-upload-status.is-error{
  color:#9a4054;
}

@media(max-width:1050px){
  .cafe-album-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:700px){
  .cafe-album-card{
    grid-template-columns:150px minmax(0,1fr);
  }

  .cafe-music-track-row{
    grid-template-columns:36px 1fr;
  }

  .cafe-music-track-file{
    grid-column:2;
  }

  .cafe-music-track-title,
  .cafe-music-track-row audio{
    grid-column:1 / -1;
  }
}

@media(max-width:500px){
  .cafe-album-card{
    grid-template-columns:1fr;
  }

  .cafe-album-cover{
    min-height:0;
  }

  .cafe-track-heading{
    grid-template-columns:28px minmax(0,1fr);
  }

  .cafe-track-format{
    grid-column:2;
  }
}


/* ===== Discothèque : pochettes carrées ===== */
.cafe-album-shelf{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
}

.cafe-album-tile{
  min-width:0;
}

.cafe-album-square{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:1;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:24px;
  background:linear-gradient(135deg,var(--pink),var(--lavender),var(--mint));
  box-shadow:0 14px 30px rgba(52,43,49,.14);
  cursor:pointer;
}

.cafe-album-square img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease, filter .25s ease;
}

.cafe-album-square:hover img{
  transform:scale(1.035);
  filter:brightness(.78);
}

.cafe-album-square-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  font-size:4rem;
}

.cafe-album-play-overlay{
  position:absolute;
  left:50%;
  top:50%;
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  transform:translate(-50%,-50%) scale(.88);
  border-radius:50%;
  background:rgba(42,35,40,.78);
  color:#fff;
  font-size:1.65rem;
  padding-left:5px;
  box-shadow:0 12px 35px rgba(0,0,0,.3);
  opacity:0;
  transition:.2s ease;
  backdrop-filter:blur(8px);
}

.cafe-album-square:hover .cafe-album-play-overlay,
.cafe-album-square:focus-visible .cafe-album-play-overlay{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}

.cafe-album-tile-info{
  padding:12px 4px 0;
}

.cafe-album-tile-title{
  display:block;
  width:100%;
  padding:0;
  border:0;
  background:transparent;
  color:var(--ink);
  text-align:left;
  font-size:1.05rem;
  font-weight:950;
  line-height:1.18;
  cursor:pointer;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-album-tile-title:hover{
  text-decoration:underline;
}

.cafe-album-tile-artist{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.86rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-album-tile-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:9px;
  color:var(--muted);
  font-size:.78rem;
}

.cafe-album-mini-play{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:none;
  padding-left:3px;
  border:0;
  border-radius:50%;
  background:var(--pink);
  color:var(--ink);
  font-size:.85rem;
  box-shadow:0 6px 18px rgba(81,70,79,.13);
}

/* ===== Lecteur d'album plein écran ===== */
.cafe-music-player[hidden]{
  display:none!important;
}

.cafe-music-player{
  position:fixed;
  inset:0;
  z-index:11000;
  display:grid;
  place-items:center;
  padding:20px;
}

.cafe-music-player-backdrop{
  position:absolute;
  inset:0;
  background:rgba(22,18,21,.88);
  backdrop-filter:blur(10px);
}

.cafe-music-player-panel{
  position:relative;
  z-index:1;
  width:min(1220px,96vw);
  height:min(820px,94vh);
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
  border-radius:30px;
  background:linear-gradient(145deg,#3c3638,#282427);
  color:#f8f0f5;
  box-shadow:0 32px 100px rgba(0,0,0,.48);
}

.cafe-music-player-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 20px;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(26,23,25,.72);
}

.cafe-music-player-top > div{
  display:grid;
  gap:2px;
  min-width:0;
}

.cafe-music-player-eyebrow{
  color:#ef9dbc;
  font-size:.74rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.cafe-music-player-top strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-music-player-close{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  flex:none;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.11);
  color:#fff;
  font-size:1.8rem;
}

.cafe-music-player-layout{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(320px,420px) minmax(0,1fr);
}

.cafe-music-player-left{
  min-height:0;
  display:flex;
  flex-direction:column;
  padding:26px;
  background:rgba(255,255,255,.035);
  border-right:1px solid rgba(255,255,255,.07);
  overflow:auto;
}

.cafe-music-player-cover-wrap{
  position:relative;
  width:min(100%,360px);
  aspect-ratio:1;
  margin:0 auto;
  overflow:hidden;
  border-radius:24px;
  background:linear-gradient(135deg,#725260,#554754);
  box-shadow:0 20px 55px rgba(0,0,0,.38);
}

.cafe-music-player-cover{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.cafe-music-player-cover-fallback{
  position:absolute;
  inset:0;
  display:none;
  place-items:center;
  font-size:5rem;
}

.cafe-music-player-meta{
  margin-top:20px;
  text-align:center;
}

.cafe-music-player-meta h2{
  margin:0;
  color:#fff;
  font-size:clamp(1.45rem,3vw,2rem);
}

.cafe-music-player-meta p{
  margin:5px 0 14px;
  color:rgba(255,255,255,.62);
}

.cafe-music-player-meta > strong{
  display:block;
  min-height:1.4em;
  color:#f2b1ca;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-music-progress{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 42px;
  align-items:center;
  gap:8px;
  margin-top:16px;
  font-size:.72rem;
  color:rgba(255,255,255,.58);
}

.cafe-music-progress input,
.cafe-music-volume input{
  width:100%;
  accent-color:#ec94b7;
}

.cafe-music-main-controls{
  display:grid;
  grid-template-columns:48px 48px 64px 48px 48px;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:18px;
}

.cafe-music-control,
.cafe-music-play-main{
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff;
}

.cafe-music-control{
  width:48px;
  height:48px;
  font-size:1.15rem;
}

.cafe-music-control.is-active{
  background:#a14f70;
  box-shadow:0 0 0 3px rgba(239,157,188,.18);
}

.cafe-music-play-main{
  width:64px;
  height:64px;
  padding-left:4px;
  background:#ec94b7;
  color:#2f292d;
  font-size:1.45rem;
  box-shadow:0 10px 28px rgba(236,148,183,.26);
}

.cafe-music-volume{
  display:grid;
  grid-template-columns:26px minmax(0,180px);
  justify-content:center;
  align-items:center;
  gap:8px;
  margin-top:16px;
}

.cafe-music-player-right{
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  padding:22px 22px 22px 0;
}

.cafe-music-tracklist-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:0 4px 14px 22px;
}

.cafe-music-tracklist-head strong{
  font-size:1.15rem;
}

.cafe-music-tracklist-head span{
  color:rgba(255,255,255,.5);
  font-size:.78rem;
}

.cafe-music-player-tracks{
  min-height:0;
  overflow:auto;
  padding-left:18px;
  padding-right:4px;
}

.cafe-player-track{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto auto;
  align-items:center;
  gap:12px;
  padding:12px;
  border-radius:15px;
  border:1px solid transparent;
  transition:.16s ease;
}

.cafe-player-track:hover{
  background:rgba(255,255,255,.06);
}

.cafe-player-track.is-current{
  background:rgba(236,148,183,.13);
  border-color:rgba(236,148,183,.24);
}

.cafe-player-track-button{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  padding-left:2px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff;
}

.cafe-player-track.is-current .cafe-player-track-button{
  background:#ec94b7;
  color:#2d282b;
}

.cafe-player-track-title{
  min-width:0;
}

.cafe-player-track-title strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-player-track-title span{
  display:block;
  margin-top:2px;
  color:rgba(255,255,255,.45);
  font-size:.72rem;
}

.cafe-player-track-format{
  color:rgba(255,255,255,.45);
  font-size:.68rem;
  font-weight:900;
}

.cafe-player-track-download{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#f0abc5;
  text-decoration:none;
  background:rgba(255,255,255,.06);
}

body.cafe-music-player-open{
  overflow:hidden;
}

@media(max-width:1050px){
  .cafe-album-shelf{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:820px){
  .cafe-music-player{
    padding:0;
  }

  .cafe-music-player-panel{
    width:100%;
    height:100%;
    max-height:none;
    border-radius:0;
  }

  .cafe-music-player-layout{
    grid-template-columns:1fr;
    overflow:auto;
  }

  .cafe-music-player-left{
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.07);
    overflow:visible;
  }

  .cafe-music-player-cover-wrap{
    width:min(70vw,320px);
  }

  .cafe-music-player-right{
    min-height:420px;
    padding:20px;
  }

  .cafe-music-player-tracks{
    padding-left:0;
  }

  .cafe-music-tracklist-head{
    padding-left:0;
  }
}

@media(max-width:650px){
  .cafe-album-shelf{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
  }

  .cafe-album-play-overlay{
    width:58px;
    height:58px;
    opacity:1;
    font-size:1.3rem;
  }

  .cafe-player-track{
    grid-template-columns:38px minmax(0,1fr) auto;
    gap:9px;
  }

  .cafe-player-track-format{
    display:none;
  }
}

@media(max-width:390px){
  .cafe-album-shelf{
    grid-template-columns:1fr 1fr;
    gap:12px;
  }

  .cafe-album-tile-title{
    font-size:.94rem;
  }

  .cafe-music-main-controls{
    grid-template-columns:42px 42px 58px 42px 42px;
    gap:7px;
  }

  .cafe-music-control{
    width:42px;
    height:42px;
  }

  .cafe-music-play-main{
    width:58px;
    height:58px;
  }
}


/* ===== Événements v0.12 ===== */
.cafe-event-showcase-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}

.cafe-event-showcase-card{
  overflow:hidden;
  border-radius:26px;
  background:rgba(255,255,255,.87);
  border:1px solid rgba(81,70,79,.08);
  box-shadow:0 12px 30px rgba(81,70,79,.09);
}

.cafe-event-poster{
  position:relative;
  display:block;
  aspect-ratio:4/5;
  overflow:hidden;
  background:linear-gradient(135deg,var(--pink),var(--lavender));
}

.cafe-event-poster img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}

.cafe-event-poster:hover img{
  transform:scale(1.025);
}

.cafe-event-date-badge{
  position:absolute;
  left:14px;
  top:14px;
  width:64px;
  min-height:68px;
  display:grid;
  place-items:center;
  align-content:center;
  border-radius:18px;
  background:rgba(48,43,39,.91);
  color:#fff;
  box-shadow:0 8px 22px rgba(0,0,0,.16);
  backdrop-filter:blur(7px);
}

.cafe-event-date-badge strong{
  font-size:1.55rem;
  line-height:1;
}

.cafe-event-date-badge span{
  margin-top:3px;
  color:#f2a6c5;
  font-size:.72rem;
  font-weight:900;
}

.cafe-event-showcase-body{
  padding:17px;
}

.cafe-event-mini-meta{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-bottom:9px;
}

.cafe-event-mini-meta span{
  padding:5px 8px;
  border-radius:999px;
  background:rgba(243,200,217,.45);
  font-size:.75rem;
  font-weight:800;
}

.cafe-event-showcase-body h3{
  margin:6px 0;
  font-size:1.22rem;
}

.cafe-event-showcase-body h3 a{
  text-decoration:none;
}

.cafe-event-showcase-body p{
  margin:0;
  color:var(--muted);
}

.cafe-event-card-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
}

.cafe-event-card-actions .btn{
  padding:9px 11px;
  font-size:.8rem;
}

.cafe-event-past-section{
  margin-top:48px;
  padding-top:30px;
  border-top:1px solid rgba(81,70,79,.1);
}

.cafe-event-section-title h3{
  margin:8px 0 18px;
  font-size:1.7rem;
}

.cafe-event-past-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}

.cafe-event-past-card{
  display:block;
  padding:10px;
  border-radius:18px;
  background:rgba(255,255,255,.68);
  border:1px solid rgba(81,70,79,.07);
  color:var(--ink);
  text-decoration:none;
}

.cafe-event-past-image{
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:13px;
  margin-bottom:9px;
  background:var(--paper);
}

.cafe-event-past-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.cafe-event-past-card strong{
  display:block;
  line-height:1.2;
}

.cafe-event-past-card span{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.76rem;
}

/* Fiche événement */
.cafe-event-single{
  overflow:hidden;
  border-radius:32px;
  background:rgba(48,43,39,.93);
  color:#eee6ed;
  box-shadow:var(--shadow);
}

.cafe-event-single-layout{
  display:grid;
  grid-template-columns:minmax(300px,43%) minmax(0,1fr);
}

.cafe-event-single-poster{
  min-height:560px;
  background:#211e20;
}

.cafe-event-single-poster img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.cafe-event-single-info{
  padding:clamp(24px,4vw,48px);
}

.cafe-event-single-info .meta{
  color:#f0a1c2;
}

.cafe-event-single-info h1{
  margin:9px 0 18px;
  color:#f4edf3;
  font-size:clamp(2rem,4.5vw,3.7rem);
  line-height:1;
}

.cafe-event-single-facts{
  display:grid;
  gap:9px;
  margin:18px 0 24px;
}

.cafe-event-single-facts span{
  width:max-content;
  max-width:100%;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.09);
  font-weight:800;
}

.cafe-event-single-content{
  color:rgba(244,237,243,.86);
}

.cafe-event-single-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:28px;
}

.cafe-event-single-actions .btn{
  justify-content:center;
}

@media(max-width:950px){
  .cafe-event-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cafe-event-past-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cafe-event-single-layout{grid-template-columns:1fr}
  .cafe-event-single-poster{min-height:0;aspect-ratio:4/3}
}

@media(max-width:620px){
  .cafe-event-showcase-grid{grid-template-columns:1fr}
  .cafe-event-past-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:390px){
  .cafe-event-past-grid{grid-template-columns:1fr}
}


/* ===== Curseurs kawaii Café Sympa v0.12.1 =====
   Les règles sont volontairement en fin de feuille pour remplacer
   tous les anciens cursor:pointer / cursor:default du thème.
*/
html,
body,
body *{
  cursor:url("assets/img/cursors/cursor-normal.png") 8 4, auto !important;
}

/* Liens, boutons et éléments interactifs */
a,
a *,
button,
button *,
[role="button"],
[role="button"] *,
label[for],
summary,
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="checkbox"],
input[type="radio"],
input[type="file"],
select{
  cursor:url("assets/img/cursors/cursor-link.png") 24 3, pointer !important;
}

/* Saisie de texte */
input:not([type]),
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="tel"],
input[type="number"],
input[type="date"],
input[type="time"],
textarea,
[contenteditable="true"]{
  cursor:url("assets/img/cursors/cursor-text.png") 32 32, text !important;
}

/* Non autorisé / désactivé */
button:disabled,
input:disabled,
select:disabled,
textarea:disabled,
[aria-disabled="true"],
.is-disabled,
.disabled{
  cursor:url("assets/img/cursors/cursor-not-allowed.png") 32 32, not-allowed !important;
}

/* Éléments déplaçables */
[draggable="true"],
.cafe-draggable,
.cafe-sortable,
.cafe-move{
  cursor:url("assets/img/cursors/cursor-move.png") 32 32, move !important;
}

/* Appui souris */
body.cafe-cursor-click,
body.cafe-cursor-click *{
  cursor:url("assets/img/cursors/cursor-click.png") 32 32, pointer !important;
}

/* Attente / chargement — placé après Clic pour être prioritaire */
body.cafe-cursor-loading,
body.cafe-cursor-loading *{
  cursor:url("assets/img/cursors/cursor-loading.png") 32 32, wait !important;
}

/* Sur appareils tactiles, aucun curseur forcé */
@media (hover:none), (pointer:coarse){
  html,
  body,
  body *{
    cursor:auto !important;
  }
}


/* ===== Accueil v0.12.2 ===== */

/* Les acteurs arrivent directement après la bannière. */
.home-actors-section{
  padding-top:28px;
}

/* Annonces et événements : jusqu'à 5 cartes. */
.home-feed-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
  align-items:start;
}

.home-feed-card{
  overflow:hidden;
  min-width:0;
}

.home-feed-image{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  background:linear-gradient(135deg,var(--pink),var(--lavender));
}

.home-feed-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .22s ease;
}

.home-feed-image:hover img{
  transform:scale(1.025);
}

.home-feed-card .news-body{
  padding:14px;
}

.home-feed-card .news-body h3{
  margin:5px 0 7px;
  font-size:1rem;
  line-height:1.18;
}

.home-feed-card .news-body h3 a{
  text-decoration:none;
}

.home-feed-card .news-body p{
  margin:0;
  font-size:.86rem;
  line-height:1.45;
}

.home-feed-card .meta{
  font-size:.7rem;
}

.home-event-date-badge{
  position:absolute;
  left:9px;
  top:9px;
  padding:6px 8px;
  border-radius:999px;
  background:rgba(48,43,39,.88);
  color:#fff;
  font-size:.7rem;
  font-weight:900;
  backdrop-filter:blur(6px);
}

.home-event-details{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-bottom:8px;
}

.home-event-details span{
  display:inline-flex;
  max-width:100%;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(243,200,217,.42);
  font-size:.69rem;
  font-weight:800;
}

.home-feed-empty{
  grid-column:1/-1;
  padding:24px;
  text-align:center;
}

@media(max-width:1150px){
  .home-feed-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .home-feed-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:470px){
  .home-feed-grid{
    grid-template-columns:1fr;
  }
}


/* ===== Accueil v0.12.3 : annonces + événements mélangés ===== */
.home-mixed-feed-head h2{
  color:#744735;
}

.home-mixed-feed-head .section-lead{
  color:#343033;
  font-weight:650;
}

.home-mixed-feed-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
  align-items:start;
}

.home-mixed-card{
  min-width:0;
  overflow:hidden;
  border-radius:24px;
}

.home-mixed-image{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  background:linear-gradient(135deg,var(--pink),var(--lavender));
}

.home-mixed-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .22s ease;
}

.home-mixed-image:hover img{
  transform:scale(1.025);
}

.home-mixed-type-badge{
  position:absolute;
  left:9px;
  top:9px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(48,43,39,.88);
  color:#fff;
  font-size:.68rem;
  font-weight:900;
  backdrop-filter:blur(6px);
}

.home-mixed-card.is-news .home-mixed-type-badge{
  background:rgba(230,0,126,.86);
}

.home-mixed-card.is-event .home-mixed-type-badge{
  background:rgba(71,59,96,.88);
}

.home-mixed-date-badge{
  position:absolute;
  right:9px;
  top:9px;
  padding:6px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  color:#343033;
  font-size:.68rem;
  font-weight:900;
}

.home-mixed-body{
  padding:14px;
}

.home-mixed-body .meta{
  font-size:.7rem;
}

.home-mixed-body h3{
  margin:5px 0 7px;
  font-size:1rem;
  line-height:1.18;
}

.home-mixed-body h3 a{
  text-decoration:none;
}

.home-mixed-body p{
  margin:0;
  color:#343033;
  font-size:.86rem;
  line-height:1.45;
}

.home-mixed-event-details{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-bottom:8px;
}

.home-mixed-event-details span{
  display:inline-flex;
  max-width:100%;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(243,200,217,.42);
  color:#343033;
  font-size:.69rem;
  font-weight:800;
}

.home-mixed-footer{
  display:flex;
  justify-content:flex-end;
  margin-top:14px;
}

@media(max-width:1150px){
  .home-mixed-feed-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .home-mixed-feed-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:470px){
  .home-mixed-feed-grid{
    grid-template-columns:1fr;
  }
}


/* ===== Couleurs des grands titres de l'accueil ===== */

/* STAFF — vert pétant */
.home-staff-head h2{
  color:#23d94f;
  text-shadow:0 2px 0 rgba(255,255,255,.28);
}

/* Annonces & événements — fuchsia pétant */
.home-mixed-feed-head h2{
  color:#5a3025;
  text-shadow:0 2px 0 rgba(255,255,255,.24);
}

/* Le coin papote — bleu pétant */
.home-papote-head h2{
  color:#008cff;
  text-shadow:0 2px 0 rgba(255,255,255,.24);
}

/* Sous-titres plus foncés pour rester lisibles sur le fond aquarelle */
.home-staff-head .section-lead,
.home-mixed-feed-head .section-lead,
.home-papote-head .section-lead{
  color:#343033;
}


/* ===== v0.13 — Le staff sur 2 lignes ===== */
.staff-layout{
  display:grid;
  gap:16px;
}

.staff-row{
  display:grid;
  gap:14px;
  width:100%;
  margin-inline:auto;
}

.staff-row-3{
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:690px;
}

.staff-row-4{
  grid-template-columns:repeat(4,minmax(0,1fr));
  max-width:920px;
}

.staff-row .actor-card{
  height:100%;
}

.actor-portrait-placeholder{
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 35% 30%,rgba(255,255,255,.95),rgba(255,226,237,.92) 58%,rgba(235,184,205,.9));
}

.mental-paw{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  font-size:clamp(3.2rem,7vw,5.1rem);
  filter:drop-shadow(0 7px 10px rgba(94,57,76,.16));
}

.actor-role-empty{
  opacity:0;
}

@media(max-width:760px){
  .staff-row-3,
  .staff-row-4{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:500px;
  }
}

@media(max-width:420px){
  .staff-row-3,
  .staff-row-4{
    grid-template-columns:1fr;
    max-width:250px;
  }
}

/* Le staff — vert pétant */
.home-staff-head h2{
  color:#23d94f;
}

/* ===== Accueil : cartes Annonce / Événement exactement de même gabarit ===== */
.home-mixed-feed-grid{
  align-items:stretch;
}

.home-mixed-card{
  display:flex;
  flex-direction:column;
  height:100%;
}

.home-mixed-image{
  flex:0 0 auto;
}

.home-mixed-body{
  display:flex;
  flex-direction:column;
  flex:0 0 218px;
  height:218px;
  overflow:hidden;
}

.home-mixed-body h3{
  min-height:2.35em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.home-mixed-body p{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.home-mixed-event-details{
  min-height:28px;
  max-height:58px;
  overflow:hidden;
}

.home-mixed-card.is-news .home-mixed-body::after{
  content:"";
  flex:1;
}

.home-mixed-type-badge.is-chapiclub,
.home-mixed-card.is-event .home-mixed-type-badge.is-chapiclub{
  background:rgba(9,151,142,.92);
  color:#fff;
}

/* ===== CinéChapi ===== */
.cafe-member-lock{
  max-width:720px;
  margin-inline:auto;
  text-align:center;
}

.cafe-lock-icon{
  font-size:3.2rem;
  margin-bottom:8px;
}

.cafe-member-lock .actions{
  justify-content:center;
  margin-top:18px;
}

.cafe-cine-head h2{
  color:#8a43ff;
}

.cafe-cine-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.cafe-cine-card{
  overflow:hidden;
  border-radius:25px;
  background:rgba(255,255,255,.87);
  border:1px solid rgba(81,70,79,.08);
  box-shadow:0 12px 30px rgba(81,70,79,.08);
}

.cafe-cine-poster{
  position:relative;
  display:block;
  aspect-ratio:2/3;
  overflow:hidden;
  background:linear-gradient(135deg,#332345,#15121b);
}

.cafe-cine-poster img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .22s ease;
}

.cafe-cine-poster:hover img{
  transform:scale(1.025);
}

.cafe-cine-play{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(20,16,24,.78);
  color:#fff;
  font-size:1.35rem;
  box-shadow:0 10px 30px rgba(0,0,0,.26);
  opacity:.92;
}

.cafe-cine-body{
  padding:15px;
}

.cafe-cine-body h3{
  margin:7px 0 8px;
}

.cafe-cine-body h3 a{
  text-decoration:none;
}

.cafe-cine-body p{
  color:var(--muted);
  font-size:.87rem;
}

.cafe-cine-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:10px 0;
}

.cafe-cine-meta span{
  padding:6px 9px;
  border-radius:999px;
  background:rgba(217,210,243,.55);
  font-size:.75rem;
  font-weight:850;
}

.cafe-cine-single{
  padding:clamp(20px,4vw,42px);
  border-radius:32px;
  background:rgba(48,43,39,.93);
  color:#eee6ed;
  box-shadow:var(--shadow);
}

.cafe-cine-single-layout{
  display:grid;
  grid-template-columns:minmax(260px,36%) minmax(0,1fr);
  gap:32px;
  align-items:start;
}

.cafe-cine-single-poster{
  overflow:hidden;
  border-radius:22px;
  background:#18151b;
}

.cafe-cine-single-poster img{
  width:100%;
  height:auto;
  display:block;
}

.cafe-cine-single-info h1{
  color:#f4edf3;
  font-size:clamp(2rem,5vw,3.6rem);
  line-height:1;
  margin:12px 0 18px;
}

.cafe-cine-single-content{
  color:rgba(244,237,243,.88);
  margin-top:22px;
}

/* Chapiclub */
.cafe-event-category-chapiclub{
  background:rgba(157,239,225,.75);
  color:#164d47;
}

@media(max-width:980px){
  .cafe-cine-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .cafe-cine-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .cafe-cine-single-layout{
    grid-template-columns:1fr;
  }

  .cafe-cine-single-poster{
    max-width:430px;
  }
}

@media(max-width:460px){
  .cafe-cine-grid{
    grid-template-columns:1fr;
  }
}


/* ===== v0.13.1 — Logo Café Sympa au-dessus de la bannière ===== */
.hero{
  padding-top:150px;
}

.hero > .container{
  position:relative;
}

.hero-brand-logo{
  position:absolute;
  z-index:6;
  top:-132px;
  left:50%;
  width:min(540px,52vw);
  transform:translateX(-50%);
  pointer-events:none;
  filter:drop-shadow(0 12px 16px rgba(82,51,45,.20));
}

.hero-brand-logo img{
  display:block;
  width:100%;
  height:auto;
}

/* La pancarte chevauche légèrement le bord supérieur de la bannière. */
.hero-banner{
  position:relative;
  z-index:2;
}

@media(max-width:800px){
  .hero{
    padding-top:112px;
  }

  .hero-brand-logo{
    top:-100px;
    width:min(520px,72vw);
  }
}

@media(max-width:520px){
  .hero{
    padding-top:82px;
  }

  .hero-brand-logo{
    top:-73px;
    width:84vw;
  }
}


/* ===== v0.13.2 — Enseigne Café Sympa intégrée à la bannière ===== */

/*
 * L'enseigne devient un vrai élément de composition :
 * - plus grande
 * - moins haute au-dessus de la bannière
 * - davantage superposée
 * - halo crème discret derrière pour la détacher sans effet "sticker"
 */
.hero{
  padding-top:84px;
}

.hero > .container{
  position:relative;
}

.hero-brand-logo{
  position:absolute;
  z-index:8;
  top:-78px;
  left:50%;
  width:min(860px,62vw);
  transform:translateX(-50%);
  pointer-events:none;
  filter:
    drop-shadow(0 13px 16px rgba(83,49,38,.20))
    drop-shadow(0 3px 3px rgba(255,249,235,.62));
}

/* halo organique très léger derrière l'enseigne */
.hero-brand-logo::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:50%;
  top:50%;
  width:108%;
  height:68%;
  transform:translate(-50%,-46%);
  border-radius:50%;
  background:
    radial-gradient(
      ellipse at center,
      rgba(255,247,224,.92) 0%,
      rgba(255,247,224,.62) 44%,
      rgba(255,247,224,.18) 70%,
      rgba(255,247,224,0) 100%
    );
  filter:blur(8px);
}

.hero-brand-logo img{
  display:block;
  width:100%;
  height:auto;
}

/* La bannière passe légèrement derrière l'enseigne. */
.hero-banner{
  position:relative;
  z-index:2;
  margin-top:0;
  overflow:visible;
}

/* Petit dégagement interne en haut pour éviter que les visages soient masqués. */
.hero-banner .hero-art,
.hero-banner > img{
  border-radius:inherit;
}

/* Le groupe de boutons reste naturellement sous l'image. */
.hero-actions{
  position:relative;
  z-index:3;
}

@media(max-width:1050px){
  .hero{
    padding-top:74px;
  }

  .hero-brand-logo{
    top:-67px;
    width:min(760px,70vw);
  }
}

@media(max-width:760px){
  .hero{
    padding-top:58px;
  }

  .hero-brand-logo{
    top:-54px;
    width:min(650px,82vw);
  }
}

@media(max-width:520px){
  .hero{
    padding-top:46px;
  }

  .hero-brand-logo{
    top:-43px;
    width:92vw;
  }

  .hero-brand-logo::before{
    width:112%;
    height:72%;
  }
}


/* ===== v0.13.3 — Logo dans la barre de navigation ===== */

/* Retour à la bannière originale, sans enseigne superposée. */
.hero{
  padding:34px 0 20px;
}

.hero > .container{
  position:static;
}

.hero-banner{
  position:relative;
  z-index:auto;
  overflow:hidden;
  margin-top:0;
}

/* Le logo illustré remplace tasse + texte dans le header. */
.brand-logo-link{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  width:220px;
  max-width:24vw;
  text-decoration:none;
}

.header-cafe-logo{
  display:block;
  width:100%;
  height:auto;
  max-height:68px;
  object-fit:contain;
  filter:drop-shadow(0 4px 5px rgba(44,28,24,.14));
}

/* L'ancien style de la tasse n'est plus utilisé. */
.brand-logo-link .brand-mark{
  display:none;
}

@media(max-width:1100px){
  .brand-logo-link{
    width:190px;
    max-width:30vw;
  }

  .header-cafe-logo{
    max-height:60px;
  }
}

@media(max-width:900px){
  .hero{
    padding-top:20px;
  }

  .brand-logo-link{
    width:180px;
    max-width:48vw;
  }
}

@media(max-width:600px){
  .brand-logo-link{
    width:155px;
    max-width:52vw;
  }

  .header-cafe-logo{
    max-height:52px;
  }
}


/* ===== v0.14 — Logo du header un peu plus grand ===== */
.nav-wrap{
  min-height:88px;
}

.brand-logo-link{
  width:260px;
  max-width:27vw;
}

.header-cafe-logo{
  max-height:78px;
}

@media(max-width:1100px){
  .brand-logo-link{
    width:215px;
    max-width:31vw;
  }

  .header-cafe-logo{
    max-height:66px;
  }
}

@media(max-width:900px){
  .brand-logo-link{
    width:195px;
    max-width:50vw;
  }
}

@media(max-width:600px){
  .brand-logo-link{
    width:170px;
    max-width:54vw;
  }

  .header-cafe-logo{
    max-height:58px;
  }
}

/* ===== Fiches popup du staff ===== */
button.actor-card{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  font:inherit;
  color:inherit;
  text-align:center;
  cursor:pointer;
}

.staff-profile-trigger{
  position:relative;
  transition:transform .18s ease, box-shadow .18s ease;
}

.staff-profile-trigger:hover,
.staff-profile-trigger:focus-visible{
  transform:translateY(-5px);
  box-shadow:0 18px 38px rgba(76,52,67,.14);
}

.actor-card-hint{
  display:inline-flex;
  justify-content:center;
  margin-top:8px;
  color:#744735;
  font-size:.73rem;
  font-weight:900;
  opacity:.74;
}

.staff-profile-trigger:hover .actor-card-hint{
  opacity:1;
}

.cafe-staff-modal[hidden]{
  display:none!important;
}

.cafe-staff-modal{
  position:fixed;
  inset:0;
  z-index:10020;
  display:grid;
  place-items:center;
  padding:20px;
}

.cafe-staff-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(36,29,33,.72);
  backdrop-filter:blur(8px);
}

.cafe-staff-modal-card{
  position:relative;
  z-index:1;
  width:min(760px,95vw);
  max-height:90vh;
  overflow:auto;
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:28px;
  align-items:center;
  padding:28px;
  border-radius:32px;
  background:
    radial-gradient(circle at 12% 12%,rgba(255,213,229,.72),transparent 27%),
    radial-gradient(circle at 92% 88%,rgba(217,210,243,.62),transparent 30%),
    rgba(255,250,244,.98);
  border:1px solid rgba(230,0,126,.13);
  box-shadow:0 30px 90px rgba(32,24,29,.34);
}

.cafe-staff-modal-portrait{
  aspect-ratio:1;
  overflow:hidden;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(145deg,#fff,#f9dfe9);
  border:8px solid rgba(255,255,255,.88);
  box-shadow:0 15px 38px rgba(92,53,71,.16);
}

.cafe-staff-modal-portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.cafe-staff-modal-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  font-size:6rem;
  background:radial-gradient(circle,#fff 0%,#ffe4ee 72%);
}

.cafe-staff-modal-content h3{
  margin:9px 0 4px;
  color:#23b947;
  font-size:clamp(2rem,5vw,3.1rem);
  line-height:1;
}

.cafe-staff-modal-content > strong{
  display:block;
  color:#744735;
  font-size:1rem;
}

.cafe-staff-modal-content > p{
  margin:18px 0 0;
  color:#3d363a;
  font-size:1rem;
  line-height:1.7;
  white-space:pre-line;
}

.cafe-staff-modal-close{
  position:absolute;
  top:12px;
  right:12px;
  z-index:4;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#4d4147;
  font-size:1.8rem;
  box-shadow:0 8px 22px rgba(49,37,43,.14);
}

body.cafe-staff-modal-open{
  overflow:hidden;
}

@media(max-width:650px){
  .cafe-staff-modal-card{
    grid-template-columns:1fr;
    gap:18px;
    padding:22px;
    text-align:center;
  }

  .cafe-staff-modal-portrait{
    width:190px;
    margin-inline:auto;
  }
}

/* ===== Éditeur de présentation du staff ===== */
.cafe-staff-profile-editor{
  margin-top:26px;
  padding:22px;
  border-radius:24px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.86),rgba(243,200,217,.28));
  border:1px solid rgba(81,70,79,.08);
}

.cafe-staff-profile-editor h3{
  margin:10px 0 5px;
}

.cafe-staff-profile-editor p{
  color:var(--muted);
}

.cafe-staff-profile-form{
  max-width:800px;
}

/* ===== Le coin papote — refonte kawaii ===== */
.cafe-forum-kawaii{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 4%,rgba(255,199,221,.55),transparent 24%),
    radial-gradient(circle at 96% 92%,rgba(194,225,255,.54),transparent 27%),
    rgba(255,250,244,.92);
  border:1px solid rgba(230,0,126,.10);
}

.cafe-forum-kawaii::before{
  content:"🐾";
  position:absolute;
  right:-16px;
  top:78px;
  font-size:8rem;
  opacity:.045;
  transform:rotate(18deg);
  pointer-events:none;
}

.cafe-forum-toolbar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  margin-bottom:26px;
}

.cafe-forum-heading{
  position:relative;
  max-width:720px;
}

.cafe-forum-deco{
  display:flex;
  gap:5px;
  margin-bottom:5px;
  font-size:1.25rem;
}

.cafe-forum-heading h2{
  color:#008cff;
  text-shadow:0 2px 0 rgba(255,255,255,.56);
}

.cafe-forum-heading p{
  color:#3b3639;
}

.cafe-forum-new-button{
  flex:none;
  background:linear-gradient(135deg,#ff2b91,#e6007e);
  box-shadow:0 8px 20px rgba(230,0,126,.18);
}

.cafe-topic-card-list{
  display:grid;
  gap:12px;
}

.cafe-topic-card{
  display:grid;
  grid-template-columns:66px minmax(0,1fr) 90px;
  gap:14px;
  align-items:center;
  padding:14px;
  border-radius:21px;
  background:rgba(255,255,255,.80);
  border:1px solid rgba(81,70,79,.075);
  box-shadow:0 7px 20px rgba(81,70,79,.05);
  text-decoration:none;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.cafe-topic-card:hover{
  transform:translateY(-2px);
  border-color:rgba(0,140,255,.22);
  box-shadow:0 12px 26px rgba(81,70,79,.09);
}

.cafe-topic-avatar{
  width:62px;
  height:62px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(135deg,#ffe0ec,#ddeeff);
  border:3px solid #fff;
  box-shadow:0 6px 16px rgba(70,47,60,.11);
}

.cafe-topic-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.cafe-topic-main{
  min-width:0;
}

.cafe-topic-main > strong{
  display:block;
  margin:3px 0 4px;
  color:#3d353a;
  font-size:1.02rem;
}

.cafe-topic-main > p{
  margin:0;
  color:#716970;
  font-size:.84rem;
  line-height:1.42;
}

.cafe-topic-meta-line{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  color:#9a8f97;
  font-size:.72rem;
}

.cafe-topic-author{
  color:#744735;
  font-weight:900;
}

.cafe-topic-replies{
  min-width:78px;
  padding:8px 6px;
  border-radius:16px;
  background:rgba(221,238,255,.66);
  text-align:center;
}

.cafe-topic-bubble{
  display:block;
  font-size:1rem;
}

.cafe-topic-replies strong{
  display:block;
  color:#008cff;
  font-size:1.16rem;
}

.cafe-topic-replies span:last-child{
  color:#6f6870;
  font-size:.66rem;
}

.cafe-forum-empty{
  background:rgba(255,255,255,.62);
  border-radius:21px;
}

/* Fiche discussion */
.cafe-topic-page{
  background:
    radial-gradient(circle at 95% 4%,rgba(194,225,255,.42),transparent 24%),
    radial-gradient(circle at 4% 92%,rgba(255,199,221,.40),transparent 25%),
    rgba(255,250,244,.94);
}

.cafe-topic-head h1{
  color:#008cff;
}

.cafe-topic-author-card{
  display:flex;
  align-items:center;
  gap:11px;
  width:max-content;
  max-width:100%;
  padding:9px 13px 9px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(81,70,79,.07);
}

.cafe-topic-author-avatar{
  width:48px;
  height:48px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#ffe2ed;
}

.cafe-topic-author-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.cafe-topic-author-card > div:last-child{
  display:grid;
  gap:1px;
}

.cafe-topic-author-card strong{
  color:#744735;
}

.cafe-topic-author-card span{
  color:#857b83;
  font-size:.75rem;
}

.cafe-topic-message{
  margin-top:22px;
  padding:20px;
  border-radius:22px 22px 22px 7px;
  background:#fff;
  color:#393337;
  border:1px solid rgba(81,70,79,.07);
  box-shadow:0 8px 22px rgba(81,70,79,.05);
}

.cafe-replies{
  margin-top:30px;
}

.cafe-replies > h2{
  color:#744735;
}

.cafe-comment-list{
  display:grid;
  gap:11px;
  padding:0;
  list-style:none;
}

.cafe-comment-list .comment{
  padding:14px;
  border-radius:20px 20px 7px 20px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(81,70,79,.07);
}

.cafe-comment-list .comment-body{
  position:relative;
}

.cafe-comment-list .comment-author{
  display:flex;
  align-items:center;
  gap:8px;
}

.cafe-comment-list .avatar{
  border-radius:50%;
}

.cafe-comment-list .comment-meta{
  margin:5px 0 8px 52px;
  font-size:.72rem;
}

.cafe-reply-box{
  margin-top:20px;
  padding:18px;
  border-radius:22px;
  background:rgba(221,238,255,.52);
}

.cafe-forum-compose{
  background:
    radial-gradient(circle at 95% 8%,rgba(194,225,255,.50),transparent 28%),
    radial-gradient(circle at 6% 92%,rgba(255,199,221,.46),transparent 27%),
    rgba(255,250,244,.94);
}

.cafe-forum-compose h2{
  color:#008cff;
}

@media(max-width:700px){
  .cafe-forum-toolbar{
    align-items:flex-start;
    flex-direction:column;
  }

  .cafe-topic-card{
    grid-template-columns:54px minmax(0,1fr);
  }

  .cafe-topic-avatar{
    width:52px;
    height:52px;
  }

  .cafe-topic-replies{
    grid-column:2;
    width:max-content;
    min-width:74px;
  }
}


/* ===== v0.14.4 — Sous-titres plus lisibles ===== */

/* Petites phrases placées sous les grands titres sur les fonds clairs. */
.section-head .section-lead,
.home-staff-head .section-lead,
.home-mixed-feed-head .section-lead,
.home-papote-head .section-lead,
.cafe-event-public-head > p,
.cafe-cine-head > p,
.cafe-public-head > p{
  color:#3f3a3d;
  font-weight:650;
  opacity:1;
}

/* Les pages volontairement sombres gardent un texte clair. */
.cafe-artwork-page-shell .cafe-public-head > p,
.cafe-event-single .section-lead,
.cafe-artwork-single .section-lead{
  color:rgba(244,237,243,.82);
}


/* ===== v0.14.5 — Correction forcée des sous-titres clairs ===== */
/*
 * Certaines sections héritaient encore d'une couleur blanche provenant
 * d'anciens styles. On force ici la couleur uniquement sur les zones claires.
 */
body.home .section-head p.section-lead,
body.home .home-staff-head p.section-lead,
body.home .home-mixed-feed-head p.section-lead,
body.home .home-papote-head p.section-lead,
body:not(.cafe-dark-page) .cafe-event-public-head > p,
body:not(.cafe-dark-page) .cafe-cine-head > p,
body:not(.cafe-dark-page) .cafe-public-head > p{
  color:#373336 !important;
  opacity:1 !important;
  text-shadow:none !important;
  font-weight:650;
}

/* Les rares contenus réellement posés sur un panneau sombre restent clairs. */
.cafe-artwork-page-shell .cafe-public-head > p,
.cafe-event-single .section-lead,
.cafe-artwork-single .section-lead{
  color:rgba(244,237,243,.84) !important;
}


/* ===== v0.14.7 — Logo Second Life Café Sympa en bas à gauche ===== */
.cafe-sl-corner-logo{
  position:fixed;
  left:16px;
  bottom:14px;
  z-index:85;
  width:86px;
  pointer-events:none;
  opacity:.96;
  filter:drop-shadow(0 7px 10px rgba(78,52,62,.18));
}

.cafe-sl-corner-logo img{
  display:block;
  width:100%;
  height:auto;
}

@media(max-width:760px){
  .cafe-sl-corner-logo{
    left:10px;
    bottom:10px;
    width:70px;
  }
}

@media(max-width:480px){
  .cafe-sl-corner-logo{
    width:58px;
    opacity:.92;
  }
}


/* ===== v0.15 — Accueil : Quoi de neuf ? + annonces à droite ===== */

.home-whatsnew-head h2{
  color:#5a3025;
}

.home-whatsnew-head .section-lead{
  color:#3f3a3d!important;
  opacity:1!important;
}

.home-whatsnew-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 315px;
  gap:24px;
  align-items:start;
}

.home-whatsnew-main{
  min-width:0;
}

.home-whatsnew-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}

.home-whatsnew-card{
  display:flex;
  min-width:0;
  height:100%;
  overflow:hidden;
  flex-direction:column;
  border-radius:24px;
}

.home-whatsnew-image{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  background:linear-gradient(135deg,var(--pink),var(--lavender));
}

.home-whatsnew-card.is-cine .home-whatsnew-image{
  background:linear-gradient(135deg,#32223e,#17131d);
}

.home-whatsnew-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .22s ease;
}

.home-whatsnew-image:hover img{
  transform:scale(1.025);
}

.home-whatsnew-type-badge,
.home-whatsnew-date-badge{
  position:absolute;
  top:9px;
  padding:6px 9px;
  border-radius:999px;
  font-size:.68rem;
  font-weight:900;
  backdrop-filter:blur(6px);
}

.home-whatsnew-type-badge{
  left:9px;
  background:rgba(67,52,77,.90);
  color:#fff;
}

.home-whatsnew-card.is-cine .home-whatsnew-type-badge{
  background:rgba(121,56,183,.92);
}

.home-whatsnew-date-badge{
  right:9px;
  background:rgba(255,255,255,.90);
  color:#343033;
}

.home-whatsnew-body{
  display:flex;
  flex:1;
  flex-direction:column;
  min-height:205px;
  padding:14px;
}

.home-whatsnew-body .meta{
  font-size:.69rem;
}

.home-whatsnew-body h3{
  min-height:2.35em;
  margin:5px 0 7px;
  font-size:1rem;
  line-height:1.18;
}

.home-whatsnew-body h3 a{
  text-decoration:none;
}

.home-whatsnew-body p{
  display:-webkit-box;
  overflow:hidden;
  margin:0;
  color:#3f3a3d;
  font-size:.84rem;
  line-height:1.44;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
}

.home-whatsnew-details{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-bottom:8px;
}

.home-whatsnew-details span{
  padding:4px 7px;
  border-radius:999px;
  background:rgba(243,200,217,.42);
  color:#343033;
  font-size:.68rem;
  font-weight:850;
}

.home-whatsnew-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.home-cine-locked-teaser{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:14px;
  padding:14px 16px;
  border:1px solid rgba(125,66,170,.11);
  border-radius:20px;
  background:linear-gradient(135deg,rgba(239,222,255,.78),rgba(255,235,244,.74));
  color:#403742;
  text-decoration:none;
}

.home-cine-lock-icon{
  flex:none;
  font-size:1.7rem;
}

.home-cine-locked-teaser span:last-child{
  display:grid;
  gap:2px;
}

.home-cine-locked-teaser strong{
  color:#7e42b8;
}

.home-cine-locked-teaser small{
  color:#5d555b;
}

/* Colonne Annonces à droite */
.home-news-sidebar{
  position:sticky;
  top:104px;
  overflow:hidden;
  padding:16px;
  border:1px solid rgba(230,0,126,.10);
  border-radius:26px;
  background:
    radial-gradient(circle at 90% 5%,rgba(255,199,221,.48),transparent 28%),
    rgba(255,250,244,.88);
  box-shadow:0 12px 30px rgba(81,70,79,.07);
}

.home-news-sidebar-head{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:13px;
}

.home-news-sidebar-head > span{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:none;
  border-radius:50%;
  background:#ffdeeb;
  font-size:1.25rem;
}

.home-news-sidebar-head h3{
  margin:0;
  color:#5a3025;
  font-size:1.35rem;
}

.home-news-sidebar-head p{
  margin:2px 0 0;
  color:#3f3a3d;
  font-size:.78rem;
}

.home-news-sidebar-list{
  display:grid;
  gap:9px;
}

.home-news-sidebar-card{
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:9px;
  border-radius:17px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(81,70,79,.065);
  color:var(--ink);
  text-decoration:none;
  transition:transform .15s ease, box-shadow .15s ease;
}

.home-news-sidebar-card:hover{
  transform:translateX(-2px);
  box-shadow:0 7px 18px rgba(81,70,79,.08);
}

.home-news-sidebar-thumb{
  width:64px;
  height:64px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(135deg,#ffe0ec,#efe6ff);
}

.home-news-sidebar-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.home-news-sidebar-copy{
  min-width:0;
}

.home-news-sidebar-copy > span{
  display:block;
  color:#b05a81;
  font-size:.65rem;
  font-weight:850;
}

.home-news-sidebar-copy > strong{
  display:block;
  overflow:hidden;
  margin:2px 0;
  color:#40383d;
  font-size:.86rem;
  line-height:1.18;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.home-news-sidebar-copy p{
  display:-webkit-box;
  overflow:hidden;
  margin:0;
  color:#6c6469;
  font-size:.72rem;
  line-height:1.3;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}

.home-news-sidebar-empty{
  padding:18px 10px;
  color:#6d656a;
  text-align:center;
  font-size:.82rem;
}

@media(max-width:1180px){
  .home-whatsnew-layout{
    grid-template-columns:minmax(0,1fr) 285px;
  }

  .home-whatsnew-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:900px){
  .home-whatsnew-layout{
    grid-template-columns:1fr;
  }

  .home-news-sidebar{
    position:static;
  }

  .home-news-sidebar-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px){
  .home-whatsnew-grid,
  .home-news-sidebar-list{
    grid-template-columns:1fr;
  }
}


/* ===== v0.15.1 — Vraie colonne Annonces fixe à droite ===== */

/*
 * Sur grand écran, on réserve une vraie bande à droite du site.
 * La colonne Annonces est fixée à la fenêtre et reste visible pendant
 * tout le défilement de la page d'accueil.
 */
@media(min-width:1350px){
  body.home main > section > .container{
    width:auto;
    max-width:1180px;
    margin-left:max(18px, calc((100vw - 1500px) / 2));
    margin-right:340px;
  }

  .home-whatsnew-layout{
    display:block;
  }

  .home-news-sidebar{
    position:fixed;
    z-index:72;
    top:112px;
    right:18px;
    width:294px;
    max-height:calc(100vh - 132px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
  }

  /* Un peu d'air sous le dernier élément lorsqu'on doit faire défiler la colonne. */
  .home-news-sidebar-list{
    padding-bottom:2px;
  }
}

/*
 * Sur écran plus étroit, on évite tout chevauchement :
 * les annonces redeviennent un bloc normal sous "Quoi de neuf ?".
 */
@media(max-width:1349px){
  body.home main > section > .container{
    width:min(1180px,calc(100% - 32px));
    max-width:none;
    margin-inline:auto;
  }

  .home-whatsnew-layout{
    grid-template-columns:1fr;
  }

  .home-news-sidebar{
    position:static;
    width:auto;
    max-height:none;
    overflow:visible;
  }
}

/* ===== Logo Second Life réduit exactement de moitié ===== */
.cafe-sl-corner-logo{
  width:43px;
}

@media(max-width:760px){
  .cafe-sl-corner-logo{
    width:35px;
  }
}

@media(max-width:480px){
  .cafe-sl-corner-logo{
    width:29px;
  }
}


/* ===== v0.15.2 — Retour à un seul fil Quoi de neuf ? ===== */

/* Annule la colonne fixe Annonces de la v0.15.1. */
body.home main > section > .container{
  width:min(1180px,calc(100% - 32px))!important;
  max-width:none!important;
  margin-inline:auto!important;
}

.home-whatsnew-layout,
.home-news-sidebar{
  display:none!important;
}

/* Nouveau fil commun : Annonces + Événements + CinéChapi */
.home-whatsnew-grid-mixed{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}

.home-whatsnew-card.is-news .home-whatsnew-type-badge{
  background:rgba(240,0,140,.90);
}

.home-whatsnew-card.is-event .home-whatsnew-type-badge{
  background:rgba(67,52,77,.90);
}

.home-whatsnew-card.is-cine .home-whatsnew-type-badge{
  background:rgba(121,56,183,.92);
}

.home-whatsnew-grid-mixed .home-whatsnew-card{
  height:100%;
}

.home-whatsnew-grid-mixed .home-whatsnew-body{
  min-height:218px;
}

@media(max-width:1150px){
  .home-whatsnew-grid-mixed{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .home-whatsnew-grid-mixed{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:470px){
  .home-whatsnew-grid-mixed{
    grid-template-columns:1fr;
  }
}


/* ===== v0.15.3 — Dernière annonce épinglée ===== */

.home-whatsnew-card.is-news:first-child{
  border:1px solid rgba(240,0,140,.20);
  box-shadow:
    0 12px 30px rgba(81,70,79,.08),
    0 0 0 2px rgba(240,0,140,.045);
}

.home-whatsnew-pinned-badge{
  position:absolute;
  left:9px;
  bottom:9px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:#744735;
  font-size:.66rem;
  font-weight:900;
  backdrop-filter:blur(6px);
  box-shadow:0 5px 14px rgba(65,43,55,.10);
}


/* ===== v0.15.4 — Annonce épinglée + contenus à venir ===== */

/* Une seule annonce, toujours visuellement prioritaire. */
.home-whatsnew-grid-mixed .home-whatsnew-card.is-news:first-child{
  border:1px solid rgba(240,0,140,.22);
  box-shadow:
    0 12px 30px rgba(81,70,79,.08),
    0 0 0 2px rgba(240,0,140,.05);
}

/* Les événements / séances en cours sont signalés clairement. */
.home-whatsnew-card.is-current{
  border:1px solid rgba(22,168,92,.24);
  box-shadow:
    0 12px 30px rgba(81,70,79,.08),
    0 0 0 2px rgba(22,168,92,.05);
}

.home-whatsnew-current-badge{
  position:absolute;
  left:9px;
  bottom:9px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(244,255,248,.94);
  color:#168b52;
  font-size:.66rem;
  font-weight:900;
  backdrop-filter:blur(6px);
  box-shadow:0 5px 14px rgba(35,90,62,.10);
}

/* La date affichée sur les contenus planifiés devient la date réelle du rendez-vous. */
.home-whatsnew-card.is-event .meta,
.home-whatsnew-card.is-cine .meta{
  color:#7c6974;
  font-weight:850;
}


/* ===== v0.15.5 — Staff légèrement plus compact ===== */
.staff-row .actor-portrait{
  width:min(86%,185px);
}

.staff-row .actor-card{
  padding-top:12px;
  padding-bottom:15px;
}

@media(max-width:760px){
  .staff-row .actor-portrait{
    width:min(84%,172px);
  }
}

/* Petit encart explicatif dans le formulaire événement */
.cafe-form-note{
  display:flex;
  align-items:center;
  min-height:48px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(217,210,243,.42);
  color:#514850;
  font-size:.82rem;
  line-height:1.35;
}


/* ========================================================================== */
/* v0.16.0 — Confidentialité, cookies, édition du Staff et forum              */
/* ========================================================================== */

/* ---------- Pages légales ------------------------------------------------- */
.cafe-legal-page{
  display:grid;
  gap:24px;
  margin-top:16px;
}

.cafe-legal-hero{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:20px;
  align-items:center;
  padding:26px;
  border-radius:30px;
  background:
    radial-gradient(circle at 92% 8%,rgba(255,205,224,.62),transparent 28%),
    radial-gradient(circle at 8% 95%,rgba(205,231,255,.58),transparent 28%),
    rgba(255,250,244,.93);
  border:1px solid rgba(81,70,79,.08);
  box-shadow:0 14px 36px rgba(81,70,79,.07);
}

.cafe-legal-hero-icon{
  display:grid;
  place-items:center;
  width:92px;
  height:92px;
  border-radius:28px;
  background:rgba(255,255,255,.82);
  font-size:2.7rem;
  box-shadow:0 9px 22px rgba(81,70,79,.08);
}

.cafe-legal-hero h2{
  margin:5px 0 8px;
  color:#3e373c;
  font-size:clamp(1.8rem,4vw,2.9rem);
}

.cafe-legal-hero p{
  max-width:850px;
  margin:0;
  color:#5f565c;
  line-height:1.65;
}

.cafe-legal-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}

.cafe-legal-card{
  padding:20px;
  border-radius:24px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(81,70,79,.07);
  box-shadow:0 9px 24px rgba(81,70,79,.05);
}

.cafe-legal-card-icon{
  display:block;
  margin-bottom:9px;
  font-size:1.75rem;
}

.cafe-legal-card h3{
  margin:0 0 8px;
  color:#40383d;
  font-size:1.05rem;
}

.cafe-legal-card p{
  margin:0 0 14px;
  color:#665d63;
  font-size:.86rem;
  line-height:1.55;
}

.cafe-cookie-state{
  display:inline-flex;
  padding:6px 9px;
  border-radius:999px;
  background:#eef4ff;
  color:#4b6991;
  font-size:.72rem;
  font-weight:900;
}

.cafe-cookie-state.is-required{
  background:#e8f7ee;
  color:#2a7950;
}

.cafe-cookie-state.is-none{
  background:#f7edf3;
  color:#95617b;
}

.cafe-legal-section{
  padding:24px;
  border-radius:28px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(81,70,79,.07);
}

.cafe-legal-section h3{
  margin:5px 0 15px;
  color:#40383d;
  font-size:1.45rem;
}

.cafe-legal-section p{
  color:#5f565c;
  line-height:1.7;
}

.cafe-legal-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}

.cafe-legal-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.cafe-legal-summary > div{
  display:grid;
  gap:4px;
  padding:17px;
  border-radius:20px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(81,70,79,.07);
}

.cafe-legal-summary > div > span{
  font-size:1.35rem;
}

.cafe-legal-summary strong{
  color:#463d43;
}

.cafe-legal-summary p{
  margin:0;
  color:#6b6168;
  font-size:.82rem;
}

.cafe-privacy-data-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.cafe-privacy-data-grid article{
  padding:18px;
  border-radius:20px;
  background:linear-gradient(135deg,rgba(255,239,246,.72),rgba(240,246,255,.72));
}

.cafe-privacy-data-grid article > span{
  font-size:1.5rem;
}

.cafe-privacy-data-grid h4{
  margin:6px 0;
  color:#493f45;
}

.cafe-privacy-data-grid p{
  margin:0;
  font-size:.86rem;
  line-height:1.55;
}

.cafe-purpose-list{
  display:grid;
  gap:9px;
}

.cafe-purpose-list > div{
  display:grid;
  grid-template-columns:minmax(180px,240px) minmax(0,1fr);
  gap:14px;
  padding:13px 15px;
  border-radius:17px;
  background:rgba(255,247,251,.72);
}

.cafe-purpose-list strong{
  color:#744735;
}

.cafe-purpose-list span{
  color:#5f565c;
}

.cafe-rights-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:14px 0 18px;
}

.cafe-rights-grid span{
  padding:8px 11px;
  border-radius:999px;
  background:#edf6ff;
  color:#426785;
  font-weight:850;
  font-size:.8rem;
}

.cafe-legal-note{
  margin-top:12px!important;
  color:#81757d!important;
  font-size:.78rem!important;
}

.cafe-legal-contact{
  display:flex;
  justify-content:space-between;
  gap:22px;
  align-items:center;
  padding:23px;
  border-radius:28px;
  background:
    radial-gradient(circle at 0 100%,rgba(202,236,218,.6),transparent 35%),
    rgba(255,250,244,.94);
  border:1px solid rgba(81,70,79,.07);
}

.cafe-legal-contact h3{
  margin:4px 0 6px;
}

.cafe-legal-contact p{
  margin:0;
  color:#655b61;
}

.cafe-legal-contact-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.cafe-cookie-status-card{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  padding:18px 20px;
  border-radius:22px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(81,70,79,.07);
}

.cafe-cookie-status-card > div{
  display:flex;
  gap:11px;
  align-items:center;
}

.cafe-cookie-status-card p{
  margin:2px 0 0;
  color:#655b61;
  font-size:.84rem;
}

.cafe-cookie-status-dot{
  width:13px;
  height:13px;
  flex:none;
  border-radius:50%;
  background:#4fc57d;
  box-shadow:0 0 0 5px rgba(79,197,125,.13);
}

.cafe-cookie-table-wrap{
  overflow-x:auto;
  border-radius:18px;
  border:1px solid rgba(81,70,79,.07);
}

.cafe-cookie-table{
  width:100%;
  min-width:690px;
  border-collapse:collapse;
  background:rgba(255,255,255,.72);
}

.cafe-cookie-table th,
.cafe-cookie-table td{
  padding:13px 14px;
  border-bottom:1px solid rgba(81,70,79,.07);
  text-align:left;
  vertical-align:top;
}

.cafe-cookie-table th{
  background:#fff2f7;
  color:#6b4b5d;
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.cafe-cookie-table td{
  color:#5d555a;
  font-size:.84rem;
}

.cafe-cookie-table tr:last-child td{
  border-bottom:0;
}

/* ---------- Bandeau et panneau cookies ----------------------------------- */
.cafe-cookie-banner{
  position:fixed;
  z-index:900;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  width:min(1040px,calc(100% - 28px));
  display:grid;
  grid-template-columns:56px minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:17px;
  border-radius:26px;
  background:rgba(255,250,244,.97);
  border:1px solid rgba(81,70,79,.12);
  box-shadow:0 18px 55px rgba(48,38,45,.22);
  backdrop-filter:blur(18px);
}

.cafe-cookie-banner[hidden],
.cafe-cookie-modal[hidden]{
  display:none!important;
}

.cafe-cookie-banner-icon{
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  border-radius:18px;
  background:#ffe5ef;
  font-size:1.9rem;
}

.cafe-cookie-banner-copy strong{
  display:block;
  margin-bottom:3px;
  color:#42393f;
}

.cafe-cookie-banner-copy p{
  margin:0 0 3px;
  color:#685f65;
  font-size:.82rem;
  line-height:1.45;
}

.cafe-cookie-banner-copy a{
  color:#d6007b;
  font-size:.78rem;
  font-weight:800;
}

.cafe-cookie-banner-actions,
.cafe-cookie-modal-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

/* Accepter et refuser gardent la même taille/importance visuelle. */
.cafe-cookie-choice{
  min-width:122px;
  justify-content:center;
  background:#fff!important;
  color:#5c4d56!important;
  border:1px solid rgba(81,70,79,.16)!important;
  box-shadow:none!important;
}

.cafe-cookie-modal{
  position:fixed;
  z-index:950;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
}

.cafe-cookie-modal-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(38,31,35,.46);
}

.cafe-cookie-modal-panel{
  position:relative;
  z-index:1;
  width:min(680px,100%);
  max-height:min(760px,calc(100vh - 36px));
  overflow:auto;
  padding:24px;
  border-radius:30px;
  background:#fffaf4;
  box-shadow:0 24px 80px rgba(25,18,22,.28);
}

.cafe-cookie-modal-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}

.cafe-cookie-modal-head h2{
  margin:4px 0 0;
  color:#3f373c;
}

.cafe-cookie-modal-close{
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:#f5e8ee;
  color:#6d5260;
  font-size:1.5rem;
  font-weight:900;
}

.cafe-cookie-modal-intro{
  color:#665c62;
}

.cafe-cookie-preferences{
  display:grid;
  gap:10px;
  margin:18px 0;
}

.cafe-cookie-preference{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:15px;
  border-radius:19px;
  background:#fff;
  border:1px solid rgba(81,70,79,.08);
}

.cafe-cookie-preference strong{
  color:#493f45;
}

.cafe-cookie-preference p{
  margin:3px 0 0;
  color:#746970;
  font-size:.78rem;
}

.cafe-cookie-preference.is-required > span{
  padding:6px 9px;
  border-radius:999px;
  background:#e8f7ee;
  color:#2e7650;
  font-size:.72rem;
  font-weight:900;
}

.cafe-cookie-preference input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.cafe-cookie-switch{
  position:relative;
  width:48px;
  height:28px;
  border-radius:999px;
  background:#d8d0d5;
  transition:.18s ease;
}

.cafe-cookie-switch::after{
  content:"";
  position:absolute;
  top:4px;
  left:4px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:white;
  box-shadow:0 2px 7px rgba(34,28,31,.18);
  transition:.18s ease;
}

.cafe-cookie-preference input:checked + .cafe-cookie-switch{
  background:#55bd7c;
}

.cafe-cookie-preference input:checked + .cafe-cookie-switch::after{
  transform:translateX(20px);
}

.cafe-cookie-preference input:focus-visible + .cafe-cookie-switch{
  outline:3px solid rgba(0,140,255,.22);
  outline-offset:2px;
}

.cafe-cookie-modal-actions{
  justify-content:center;
  padding-top:4px;
}

.cafe-cookie-modal-foot{
  margin:14px 0 0;
  text-align:center;
  color:#7a6f76;
  font-size:.76rem;
}

body.cafe-cookie-modal-open{
  overflow:hidden;
}

/* ---------- Publications : édition et demandes de suppression ------------ */
.cafe-submission-main{
  min-width:0;
}

.cafe-content-row-actions{
  display:flex;
  gap:7px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:8px;
}

.cafe-content-row-actions form{
  margin:0;
}

.cafe-btn-compact{
  padding:7px 9px!important;
  min-height:0!important;
  font-size:.72rem!important;
}

.cafe-delete-request-state{
  display:inline-flex;
  padding:6px 9px;
  border-radius:999px;
  font-size:.68rem;
  font-weight:900;
}

.cafe-delete-request-state.is-pending{
  background:#fff1c9;
  color:#8a6710;
}

.cafe-delete-request-state.is-rejected{
  background:#f7e6ee;
  color:#9d4f70;
}

.cafe-content-edit-page{
  max-width:920px;
  margin-inline:auto;
}

.cafe-edit-content-form{
  margin-top:20px;
}

.cafe-form-three{
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:12px;
}

.cafe-edit-image-row{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:16px;
  align-items:center;
  padding:14px;
  border-radius:20px;
  background:rgba(255,255,255,.6);
  border:1px solid rgba(81,70,79,.07);
}

.cafe-edit-image-row img,
.cafe-edit-image-placeholder{
  width:150px;
  height:110px;
  object-fit:cover;
  border-radius:15px;
}

.cafe-edit-image-placeholder{
  display:grid;
  place-items:center;
  background:#f1eaf2;
  font-size:2rem;
}

.cafe-edit-static-info{
  padding:12px 14px;
  border-radius:16px;
  background:#f1f6ff;
  color:#526a80;
  font-size:.82rem;
}

.cafe-edit-track-list{
  display:grid;
  gap:8px;
  padding:16px;
  border-radius:20px;
  background:rgba(255,255,255,.64);
}

.cafe-edit-track-list label{
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  align-items:center;
}

.cafe-edit-delete-zone{
  margin-top:26px;
  padding-top:18px;
  border-top:1px dashed rgba(81,70,79,.16);
}

.cafe-edit-delete-zone h3{
  color:#a74367;
}

.cafe-delete-review-section{
  margin-top:34px;
  padding-top:28px;
  border-top:1px solid rgba(81,70,79,.1);
}

.cafe-validation-section-title h3{
  margin:5px 0;
  color:#a74367;
  font-size:1.45rem;
}

.cafe-validation-section-title p{
  color:#70666c;
}

.cafe-delete-review-card{
  border-color:rgba(184,72,112,.14)!important;
}

.cafe-empty-compact{
  padding:18px!important;
}

/* ---------- Forum : édition ------------------------------------------------ */
.cafe-forum-topic-edit-button{
  margin-top:12px;
  width:max-content;
}

.cafe-forum-edit-link,
.cafe-comment-list .comment-reply-link{
  margin-left:8px;
  color:#008cff!important;
  font-weight:850;
  text-decoration:none;
}

.cafe-forum-edit-panel{
  margin-top:18px;
  padding:20px;
  border-radius:24px;
  background:
    radial-gradient(circle at 92% 8%,rgba(194,225,255,.48),transparent 32%),
    rgba(255,250,244,.95);
  border:1px solid rgba(0,140,255,.10);
}

.cafe-forum-edit-panel h2{
  margin:5px 0 16px;
  color:#008cff;
}

.cafe-inline-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

@media(max-width:1050px){
  .cafe-legal-grid,
  .cafe-legal-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .cafe-cookie-banner{
    grid-template-columns:48px minmax(0,1fr);
  }

  .cafe-cookie-banner-actions{
    grid-column:1/-1;
    justify-content:flex-end;
  }
}

@media(max-width:700px){
  .cafe-legal-hero{
    grid-template-columns:1fr;
  }

  .cafe-legal-hero-icon{
    width:72px;
    height:72px;
  }

  .cafe-legal-grid,
  .cafe-legal-summary,
  .cafe-privacy-data-grid,
  .cafe-legal-split,
  .cafe-form-three{
    grid-template-columns:1fr;
  }

  .cafe-purpose-list > div{
    grid-template-columns:1fr;
    gap:4px;
  }

  .cafe-legal-contact,
  .cafe-cookie-status-card{
    align-items:flex-start;
    flex-direction:column;
  }

  .cafe-legal-contact-actions{
    justify-content:flex-start;
  }

  .cafe-cookie-banner{
    bottom:8px;
    width:calc(100% - 16px);
    grid-template-columns:1fr;
    padding:14px;
  }

  .cafe-cookie-banner-icon{
    width:44px;
    height:44px;
  }

  .cafe-cookie-banner-actions{
    grid-column:auto;
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .cafe-cookie-banner-actions [data-cookie-customize]{
    grid-column:1/-1;
    order:3;
  }

  .cafe-cookie-choice{
    min-width:0;
  }

  .cafe-cookie-modal-panel{
    padding:18px;
    border-radius:24px;
  }

  .cafe-cookie-modal-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .cafe-cookie-modal-actions [data-cookie-save]{
    grid-column:1/-1;
    order:3;
  }

  .cafe-edit-image-row{
    grid-template-columns:1fr;
  }
}


/* ===== v0.16.1 — Bureau des plaintes ===== */

.cafe-complaint-corner{
  position:fixed;
  right:13px;
  bottom:12px;
  z-index:86;
  pointer-events:none;
}

.cafe-complaint-launcher{
  display:block;
  width:78px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  pointer-events:auto;
  filter:drop-shadow(0 8px 12px rgba(83,53,68,.20));
  transition:transform .18s ease,filter .18s ease;
}

.cafe-complaint-launcher:hover,
.cafe-complaint-launcher:focus-visible{
  transform:translateY(-4px) rotate(1deg) scale(1.025);
  filter:drop-shadow(0 11px 16px rgba(83,53,68,.25));
}

.cafe-complaint-launcher img{
  display:block;
  width:100%;
  height:auto;
}

.cafe-complaint-modal[hidden]{display:none!important}
.cafe-complaint-modal{
  position:fixed;
  inset:0;
  z-index:160;
  display:grid;
  place-items:center;
  padding:18px;
  pointer-events:auto;
}
.cafe-complaint-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(45,31,41,.56);
  backdrop-filter:blur(5px);
}
.cafe-complaint-panel{
  position:relative;
  z-index:1;
  width:min(680px,100%);
  max-height:min(820px,calc(100vh - 34px));
  overflow:auto;
  padding:24px;
  border:1px solid rgba(225,121,166,.22);
  border-radius:30px;
  background:
    radial-gradient(circle at 95% 0,rgba(255,203,225,.62),transparent 28%),
    radial-gradient(circle at 0 100%,rgba(231,219,255,.55),transparent 28%),
    #fffaf7;
  box-shadow:0 28px 70px rgba(52,35,46,.24);
}
.cafe-complaint-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  margin-bottom:12px;
}
.cafe-complaint-head h2{margin:4px 0 0;color:#da3d84;font-size:clamp(1.7rem,4vw,2.45rem)}
.cafe-complaint-close{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:none;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.8);
  color:#7b5968;
  font-size:1.6rem;
  cursor:pointer;
  box-shadow:0 5px 16px rgba(76,55,64,.09);
}
.cafe-complaint-intro{margin:0 0 17px;color:#514a4f;line-height:1.55}
.cafe-complaint-form{display:grid;gap:14px}
.cafe-complaint-form label{display:grid;gap:7px;color:#4a4147;font-weight:850}
.cafe-complaint-form input[type="text"],
.cafe-complaint-form input[type="file"],
.cafe-complaint-form textarea{
  width:100%;
  border:1px solid rgba(104,80,94,.16);
  border-radius:15px;
  background:rgba(255,255,255,.87);
}
.cafe-complaint-form input[type="text"],
.cafe-complaint-form textarea{padding:12px 13px}
.cafe-complaint-form input[type="file"]{padding:10px}
.cafe-complaint-form small{color:#786b72;font-weight:600}
.cafe-complaint-at-field{display:grid;grid-template-columns:38px 1fr;align-items:center;border-radius:15px;background:#fff;overflow:hidden;border:1px solid rgba(104,80,94,.16)}
.cafe-complaint-at-field > span{display:grid;place-items:center;height:100%;background:#ffe2ed;color:#744735;font-weight:950}
.cafe-complaint-at-field input{border:0!important;border-radius:0!important;outline:none}
.cafe-complaint-privacy-note{padding:12px 14px;border-radius:16px;background:rgba(230,218,255,.42);color:#5a4d59;font-size:.82rem;line-height:1.45}
.cafe-complaint-submit{justify-self:start}
.cafe-complaint-login{text-align:center;padding:22px 8px 12px}
.cafe-complaint-login-icon{font-size:2.6rem}
.cafe-complaint-login h3{margin:8px 0 5px;color:#54424f}
.cafe-complaint-login p{max-width:460px;margin:0 auto 17px;color:#6b6067}
body.cafe-complaint-modal-open{overflow:hidden}

/* Compteur de notification dans le header */
.account-link{position:relative}
.cafe-account-notification-badge{
  display:inline-grid;
  place-items:center;
  min-width:20px;
  height:20px;
  margin-left:4px;
  padding:0 5px;
  border-radius:999px;
  background:#f0008c;
  color:#fff;
  font-size:.68rem;
  font-weight:950;
  line-height:1;
}

/* Notifications dans Mon compte */
.cafe-member-notifications{margin:18px 0 24px;padding:18px;border-radius:24px;background:rgba(255,248,252,.78);border:1px solid rgba(240,0,140,.09)}
.cafe-member-notifications-head h3{margin:3px 0 11px;color:#4b4047}
.cafe-member-notification-list{display:grid;gap:8px}
.cafe-member-notification{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border-radius:16px;background:rgba(255,255,255,.76);border:1px solid rgba(82,66,76,.07)}
.cafe-member-notification.is-unread{background:linear-gradient(135deg,rgba(255,229,240,.82),rgba(245,239,255,.82));border-color:rgba(240,0,140,.12)}
.cafe-member-notification-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#ffe3ef;font-size:1.15rem}
.cafe-member-notification p{margin:0;color:#473e44;line-height:1.4}
.cafe-member-notification small{display:block;margin-top:2px;color:#81747c}
.cafe-notification-new{padding:4px 7px;border-radius:999px;background:#f0008c;color:#fff;font-size:.62rem;font-weight:950}

/* Bureau des plaintes dans l'Espace Staff */
.cafe-actor-action-complaints{background:linear-gradient(145deg,rgba(255,226,239,.94),rgba(255,250,245,.92))!important}
.cafe-staff-complaints{margin:28px 0;padding:20px;border-radius:28px;background:rgba(255,250,247,.83);border:1px solid rgba(228,83,144,.10);box-shadow:0 12px 34px rgba(72,54,64,.06)}
.cafe-staff-complaints-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:16px}
.cafe-staff-complaints-head h3{margin:3px 0 4px;color:#744735;font-size:1.65rem}
.cafe-staff-complaints-head p{margin:0;color:#655b61}
.cafe-complaint-count{flex:none;padding:7px 10px;border-radius:999px;background:#ffe1ed;color:#8b5b43;font-size:.76rem;font-weight:900}
.cafe-complaint-review-list{display:grid;gap:14px}
.cafe-complaint-review-card{padding:16px;border-radius:22px;background:rgba(255,255,255,.82);border:1px solid rgba(83,65,76,.08)}
.cafe-complaint-review-card.cafe-complaint-status-validated{border-color:rgba(33,162,97,.14)}
.cafe-complaint-review-card.cafe-complaint-status-dismissed{opacity:.82}
.cafe-complaint-review-top{display:flex;justify-content:space-between;gap:12px;align-items:center}
.cafe-complaint-review-person{display:flex;gap:10px;align-items:center;min-width:0}
.cafe-complaint-review-person img{border-radius:50%;box-shadow:0 4px 12px rgba(75,54,65,.12)}
.cafe-complaint-review-person div{display:grid;min-width:0}
.cafe-complaint-review-person strong{color:#443a40}
.cafe-complaint-review-person small{color:#8b6d7c}
.cafe-complaint-fallback-avatar{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#f5eafa}
.cafe-complaint-review-status{flex:none;padding:6px 9px;border-radius:999px;background:#f5edf2;color:#654f5b;font-size:.72rem;font-weight:900}
.cafe-complaint-target-line{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:13px 0;padding:10px 12px;border-radius:14px;background:rgba(255,224,236,.55);color:#5b4751}
.cafe-complaint-target-line span{font-size:.78rem;font-weight:800}
.cafe-complaint-target-line strong{color:#d33378}
.cafe-complaint-review-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(210px,.7fr);gap:14px;align-items:start}
.cafe-complaint-review-message{color:#4d4549;line-height:1.5}
.cafe-complaint-review-message p{margin:.45em 0}
.cafe-complaint-review-message small{display:block;margin-top:8px;color:#8a7e84}
.cafe-complaint-review-evidence a{display:grid;gap:6px;color:#b63570;text-decoration:none;font-size:.76rem;font-weight:850}
.cafe-complaint-review-evidence img{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:16px;border:1px solid rgba(90,68,80,.08)}
.cafe-complaint-no-evidence{padding:30px 12px;text-align:center;border-radius:16px;background:#f7f2f5;color:#8a7e84}
.cafe-complaint-review-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:13px;border-top:1px dashed rgba(93,72,83,.12)}
.cafe-complaint-review-actions form{margin:0}
.cafe-complaint-reviewed-meta{margin-top:12px;padding-top:11px;border-top:1px dashed rgba(93,72,83,.12);color:#80737a;font-size:.76rem}
.cafe-complaint-empty{display:grid;justify-items:center;padding:26px;text-align:center;border-radius:20px;background:rgba(255,255,255,.66)}
.cafe-complaint-empty > span{font-size:2rem}
.cafe-complaint-empty strong{margin-top:5px;color:#574952}
.cafe-complaint-empty p{margin:3px 0 0;color:#81737a}
.cafe-complaint-history{margin-top:17px}
.cafe-complaint-history > summary{cursor:pointer;color:#9f3565;font-weight:900;padding:10px 0}
.cafe-complaint-history[open] > summary{margin-bottom:10px}

@media(max-width:760px){
  .cafe-complaint-launcher{width:64px}
  .cafe-complaint-corner{right:8px;bottom:8px}
  .cafe-complaint-panel{padding:19px;border-radius:24px}
  .cafe-complaint-review-layout{grid-template-columns:1fr}
  .cafe-staff-complaints-head{align-items:flex-start;flex-direction:column}
  .cafe-member-notification{grid-template-columns:38px minmax(0,1fr)}
  .cafe-notification-new{grid-column:2;justify-self:start}
}
@media(max-width:480px){
  .cafe-complaint-launcher{width:54px}
}


/* ===== v0.16.2 — Notifications, refus de plainte, outils Staff ===== */

/* Notification de plainte : croix de suppression */
.cafe-member-notification-side{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
}

.cafe-member-notification-dismiss-form{
  margin:0;
}

.cafe-member-notification-dismiss{
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(88,72,81,.08);
  color:#74656e;
  cursor:pointer;
  font:900 1.12rem/1 system-ui,sans-serif;
  transition:transform .15s ease, background .15s ease, color .15s ease;
}

.cafe-member-notification-dismiss:hover{
  transform:scale(1.08);
  background:#ffe0ec;
  color:#7f4d38;
}

.cafe-member-notification.is-rejected{
  border-color:rgba(198,59,82,.15);
  background:linear-gradient(135deg,rgba(255,237,240,.88),rgba(255,249,247,.82));
}

.cafe-member-notification.is-rejected .cafe-member-notification-icon{
  background:#ffe3e6;
}

/* Refus motivé d'une plainte */
.cafe-complaint-review-card.cafe-complaint-status-rejected{
  border-color:rgba(198,59,82,.18);
}

.cafe-complaint-rejection-note{
  margin-top:13px;
  padding:12px 14px;
  border-radius:16px;
  background:rgba(255,231,235,.72);
  border:1px solid rgba(198,59,82,.10);
}

.cafe-complaint-rejection-note p{
  margin:4px 0 0;
  color:#61454d;
  line-height:1.45;
}

.cafe-complaint-reject-form{
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto;
  gap:10px;
  align-items:end;
  width:100%;
  padding:12px;
  border-radius:17px;
  background:rgba(255,241,244,.72);
  border:1px solid rgba(198,59,82,.09);
}

.cafe-complaint-reject-form label{
  display:grid;
  gap:5px;
  color:#6a4c55;
  font-size:.78rem;
  font-weight:850;
}

.cafe-complaint-reject-form textarea{
  width:100%;
  min-height:76px;
  resize:vertical;
  padding:10px 11px;
  border:1px solid rgba(120,84,95,.16);
  border-radius:13px;
  background:rgba(255,255,255,.88);
  color:#443a40;
  font:inherit;
}

/* Outils visibles directement sous les publications pour le Staff */
.cafe-publication-staff-tools{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  margin:24px 0 8px;
  padding:15px 17px;
  border:1px solid rgba(240,0,140,.10);
  border-radius:21px;
  background:
    radial-gradient(circle at 100% 0,rgba(255,215,232,.42),transparent 32%),
    rgba(255,250,246,.87);
  box-shadow:0 9px 26px rgba(81,70,79,.06);
}

.cafe-publication-staff-tools-copy{
  display:grid;
  gap:2px;
}

.cafe-publication-staff-tools-copy strong{
  color:#493d44;
  font-size:1rem;
}

.cafe-publication-staff-tools-copy small{
  max-width:560px;
  color:#756970;
  line-height:1.35;
}

.cafe-publication-staff-tools .cafe-content-row-actions{
  flex:none;
  justify-content:flex-end;
}

@media(max-width:760px){
  .cafe-member-notification-side{
    grid-column:2;
    justify-content:flex-start;
  }

  .cafe-notification-new{
    grid-column:auto;
  }

  .cafe-complaint-reject-form{
    grid-template-columns:1fr;
  }

  .cafe-publication-staff-tools{
    align-items:flex-start;
    flex-direction:column;
  }

  .cafe-publication-staff-tools .cafe-content-row-actions{
    justify-content:flex-start;
    width:100%;
  }
}


/* ===== v0.16.3 — Nouveau Bureau des plaintes ===== */

/*
 * Le pied descend volontairement sous la fenêtre : il semble sortir du site.
 * Le point d'ancrage reste en bas à droite pendant tout le scroll.
 */
.cafe-complaint-corner{
  right:11px;
  bottom:-34px;
}

.cafe-complaint-launcher{
  width:92px;
  transform-origin:100% 100%;
  transition:
    transform .24s cubic-bezier(.2,.85,.25,1.2),
    filter .24s ease;
}

.cafe-complaint-launcher:hover,
.cafe-complaint-launcher:focus-visible{
  transform:translateY(-2px) scale(1.25);
  filter:drop-shadow(0 15px 20px rgba(83,53,68,.30));
}

.cafe-complaint-launcher img{
  width:100%;
  height:auto;
}

@media(max-width:760px){
  .cafe-complaint-corner{
    right:7px;
    bottom:-27px;
  }

  .cafe-complaint-launcher{
    width:76px;
  }

  /* Pas d'effet hover forcé sur les écrans tactiles. */
  @media(hover:none){
    .cafe-complaint-launcher:hover{
      transform:none;
    }
  }
}

/* ===== Gestion frontale des membres ===== */

.cafe-admin-member-manager{
  margin-top:28px;
  padding:22px;
  border:1px solid rgba(128,89,118,.10);
  border-radius:28px;
  background:
    radial-gradient(circle at 95% 0,rgba(255,219,235,.55),transparent 27%),
    radial-gradient(circle at 0 100%,rgba(230,224,255,.48),transparent 30%),
    rgba(255,250,246,.91);
  box-shadow:0 15px 38px rgba(81,70,79,.07);
}

.cafe-admin-member-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:17px;
}

.cafe-admin-member-head h3{
  margin:4px 0 3px;
  font-size:1.55rem;
}

.cafe-admin-member-head p{
  margin:0;
  color:#5f565c;
}

.cafe-member-counts{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px;
}

.cafe-member-counts span{
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(90,72,82,.07);
  color:#544950;
  font-size:.76rem;
  white-space:nowrap;
}

.cafe-role-explainer{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin:15px 0;
}

.cafe-role-explainer-card{
  display:flex;
  align-items:flex-start;
  gap:10px;
  min-width:0;
  padding:12px;
  border-radius:17px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(93,75,86,.07);
}

.cafe-role-explainer-card > span{
  flex:none;
  font-size:1.25rem;
}

.cafe-role-explainer-card div{
  display:grid;
  gap:3px;
}

.cafe-role-explainer-card strong{
  color:#473c43;
}

.cafe-role-explainer-card small{
  color:#71656c;
  line-height:1.35;
}

.cafe-role-explainer-card.is-cafe_vip{
  background:linear-gradient(135deg,rgba(255,249,220,.82),rgba(247,236,255,.78));
}

.cafe-role-explainer-card.is-cafe_actor{
  background:linear-gradient(135deg,rgba(255,226,238,.78),rgba(255,248,239,.82));
}

.cafe-member-search{
  display:flex;
  align-items:flex-end;
  gap:9px;
  margin:16px 0;
  padding:12px;
  border-radius:18px;
  background:rgba(255,255,255,.58);
}

.cafe-member-search label{
  display:grid;
  flex:1;
  gap:5px;
  color:#5f525a;
  font-size:.78rem;
  font-weight:850;
}

.cafe-member-search input{
  width:100%;
  min-height:42px;
  padding:9px 12px;
  border:1px solid rgba(100,77,90,.14);
  border-radius:13px;
  background:#fff;
  color:#40373c;
  font:inherit;
}

.cafe-member-admin-list{
  display:grid;
  gap:8px;
}

.cafe-member-admin-row{
  display:grid;
  grid-template-columns:52px minmax(170px,1.3fr) minmax(120px,.55fr) minmax(260px,1fr);
  gap:12px;
  align-items:center;
  padding:10px 12px;
  border:1px solid rgba(87,69,80,.07);
  border-radius:18px;
  background:rgba(255,255,255,.77);
}

.cafe-member-admin-avatar{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  overflow:hidden;
  border-radius:50%;
  background:linear-gradient(135deg,#ffe0ec,#eee8ff);
  font-size:1.2rem;
}

.cafe-member-admin-avatar img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.cafe-member-admin-identity{
  display:grid;
  min-width:0;
  gap:2px;
}

.cafe-member-admin-identity strong{
  overflow:hidden;
  color:#443a40;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-member-admin-identity span{
  color:#7b6773;
  font-size:.75rem;
}

.cafe-member-admin-identity small{
  overflow:hidden;
  color:#91848b;
  font-size:.70rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-member-admin-current{
  min-width:0;
}

.cafe-badge-vip{
  background:linear-gradient(135deg,#fff2b8,#f0e0ff);
  color:#805b14;
}

.cafe-badge-staff{
  background:linear-gradient(135deg,#ffd9e9,#ffeecf);
  color:#9d3d68;
}

.cafe-member-admin-controls form{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
}

.cafe-member-admin-controls select{
  min-width:145px;
  min-height:39px;
  padding:7px 9px;
  border:1px solid rgba(100,77,90,.14);
  border-radius:12px;
  background:#fff;
  color:#40373c;
}

.cafe-member-admin-controls .btn{
  min-height:39px;
  padding:8px 11px;
  font-size:.78rem;
}

.cafe-member-admin-locked{
  display:block;
  text-align:right;
  color:#766972;
  font-size:.77rem;
  font-weight:800;
}

.cafe-member-admin-empty{
  padding:22px;
  border-radius:16px;
  background:rgba(255,255,255,.65);
  color:#72666d;
  text-align:center;
}

.cafe-member-admin-note{
  margin:13px 0 0;
}

@media(max-width:980px){
  .cafe-member-admin-row{
    grid-template-columns:52px minmax(0,1fr) minmax(220px,.9fr);
  }

  .cafe-member-admin-current{
    grid-column:2;
  }

  .cafe-member-admin-controls{
    grid-column:3;
    grid-row:1 / span 2;
  }
}

@media(max-width:720px){
  .cafe-admin-member-head{
    flex-direction:column;
  }

  .cafe-member-counts{
    justify-content:flex-start;
  }

  .cafe-role-explainer{
    grid-template-columns:1fr;
  }

  .cafe-member-search{
    align-items:stretch;
    flex-direction:column;
  }

  .cafe-member-admin-row{
    grid-template-columns:48px minmax(0,1fr);
  }

  .cafe-member-admin-current,
  .cafe-member-admin-controls{
    grid-column:1 / -1;
    grid-row:auto;
  }

  .cafe-member-admin-controls form{
    align-items:stretch;
    flex-direction:column;
  }

  .cafe-member-admin-controls select{
    width:100%;
  }

  .cafe-member-admin-locked{
    text-align:left;
  }
}


/* ===== v0.16.4 — Logo Second Life dans le bandeau supérieur ===== */

/* L'ancien logo fixe en bas à gauche n'est plus utilisé. */
.cafe-sl-corner-logo{
  display:none!important;
}

/* Même petite taille que dans la version précédente : 43 px. */
.header-sl-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 43px;
  width:43px;
  height:58px;
  overflow:visible;
  opacity:.96;
  filter:drop-shadow(0 5px 7px rgba(78,52,62,.16));
}

.header-sl-logo img{
  display:block;
  width:43px;
  max-height:58px;
  height:auto;
  object-fit:contain;
}

@media(max-width:760px){
  .header-sl-logo{
    flex-basis:35px;
    width:35px;
    height:48px;
  }

  .header-sl-logo img{
    width:35px;
    max-height:48px;
  }
}

@media(max-width:480px){
  .header-sl-logo{
    flex-basis:29px;
    width:29px;
    height:42px;
  }

  .header-sl-logo img{
    width:29px;
    max-height:42px;
  }
}

/* ===== Archives du Bureau des plaintes ===== */

.cafe-complaint-archives{
  margin-top:26px;
  padding-top:22px;
  border-top:1px dashed rgba(94,72,84,.14);
}

.cafe-complaint-archives-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}

.cafe-complaint-archives-head h4{
  margin:4px 0 3px;
  color:#473b42;
  font-size:1.35rem;
}

.cafe-complaint-archives-head p{
  margin:0;
  color:#746970;
}

.cafe-complaint-archive-counts{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
}

.cafe-complaint-archive-counts span{
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(86,68,78,.07);
  color:#574b52;
  font-size:.73rem;
  font-weight:850;
  white-space:nowrap;
}

.cafe-complaint-archive-counts .is-validated{
  background:rgba(226,249,235,.84);
  color:#267447;
}

.cafe-complaint-archive-counts .is-rejected{
  background:rgba(255,231,235,.86);
  color:#a23e55;
}

.cafe-complaint-archive-counts .is-dismissed{
  background:rgba(238,235,246,.86);
  color:#635b78;
}

.cafe-complaint-archive-filters{
  display:flex;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:9px;
  margin:17px 0 20px;
  padding:12px;
  border-radius:18px;
  background:rgba(255,255,255,.58);
}

.cafe-complaint-archive-filters label{
  display:grid;
  gap:5px;
  color:#5d5158;
  font-size:.75rem;
  font-weight:850;
}

.cafe-complaint-archive-filters select{
  min-width:190px;
  min-height:41px;
  padding:8px 10px;
  border:1px solid rgba(100,77,90,.14);
  border-radius:12px;
  background:#fff;
  color:#443a40;
}

.cafe-complaint-archive-groups{
  display:grid;
  gap:17px;
}

.cafe-complaint-archive-month{
  display:grid;
  gap:9px;
}

.cafe-complaint-archive-month h5{
  margin:0;
  padding:0 4px;
  color:#735b68;
  font-size:.92rem;
  text-transform:capitalize;
}

.cafe-complaint-archive-month-list{
  display:grid;
  gap:8px;
}

.cafe-complaint-archive-item{
  overflow:hidden;
  border:1px solid rgba(85,66,77,.08);
  border-radius:18px;
  background:rgba(255,255,255,.70);
}

.cafe-complaint-archive-item[open]{
  box-shadow:0 10px 28px rgba(81,70,79,.07);
}

.cafe-complaint-archive-item > summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:12px 14px;
  cursor:pointer;
  list-style:none;
}

.cafe-complaint-archive-item > summary::-webkit-details-marker{
  display:none;
}

.cafe-complaint-archive-summary-main{
  display:grid;
  min-width:0;
  gap:2px;
}

.cafe-complaint-archive-summary-main strong{
  color:#4a3f45;
}

.cafe-complaint-archive-summary-main > span{
  overflow:hidden;
  color:#756970;
  font-size:.77rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-complaint-archive-summary-meta{
  display:flex;
  flex:none;
  align-items:center;
  gap:10px;
  color:#786b73;
  font-size:.72rem;
}

.cafe-complaint-archive-summary-meta > span{
  font-weight:850;
}

.cafe-complaint-archive-item > summary::after{
  content:"＋";
  flex:none;
  color:#b55b82;
  font-size:1rem;
  font-weight:900;
}

.cafe-complaint-archive-item[open] > summary::after{
  content:"−";
}

.cafe-complaint-archive-validated{
  border-left:4px solid rgba(39,151,83,.48);
}

.cafe-complaint-archive-rejected{
  border-left:4px solid rgba(198,59,82,.46);
}

.cafe-complaint-archive-dismissed{
  border-left:4px solid rgba(110,98,138,.42);
}

.cafe-complaint-archive-detail{
  padding:0 12px 12px;
}

.cafe-complaint-archive-detail .cafe-complaint-review-card{
  margin:0;
  box-shadow:none;
}

.cafe-complaint-archive-empty{
  display:grid;
  place-items:center;
  gap:3px;
  padding:24px;
  border-radius:18px;
  background:rgba(255,255,255,.62);
  color:#70636b;
  text-align:center;
}

.cafe-complaint-archive-empty > span{
  font-size:1.7rem;
}

.cafe-complaint-archive-empty p{
  margin:0;
  font-size:.8rem;
}

@media(max-width:760px){
  .cafe-complaint-archives-head{
    flex-direction:column;
  }

  .cafe-complaint-archive-counts{
    justify-content:flex-start;
  }

  .cafe-complaint-archive-filters{
    align-items:stretch;
    flex-direction:column;
  }

  .cafe-complaint-archive-filters select{
    width:100%;
  }

  .cafe-complaint-archive-item > summary{
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .cafe-complaint-archive-summary-meta{
    width:calc(100% - 28px);
    flex-wrap:wrap;
  }
}


/* ===== v0.16.5 — Gabarit commun Événements / BD / Musique / CinéChapi ===== */

/*
 * Référence : les cartes de la page Événements.
 * Artwork est volontairement exclu de toutes les règles ci-dessous.
 */
:root{
  --cafe-showcase-body-height:220px;
}

/* Même grille : 3 cartes par ligne et même espacement. */
.cafe-event-showcase-grid,
.cafe-bd-library-grid,
.cafe-album-shelf,
.cafe-cine-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  align-items:stretch;
}

/* Même enveloppe générale. */
.cafe-event-showcase-card,
.cafe-bd-library-card,
.cafe-album-tile,
.cafe-cine-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  height:100%;
  overflow:hidden;
  border:1px solid rgba(81,70,79,.08);
  border-radius:26px;
  background:rgba(255,255,255,.87);
  box-shadow:0 12px 30px rgba(81,70,79,.09);
}

/* Même hauteur visuelle de l'image : ratio 4 / 5 comme les événements. */
.cafe-event-poster,
.cafe-bd-library-cover,
.cafe-album-square,
.cafe-cine-poster{
  flex:0 0 auto;
  width:100%;
  aspect-ratio:4/5;
  border-radius:0;
}

/* Les images remplissent leur cadre sans modifier la taille des cartes. */
.cafe-bd-library-cover img,
.cafe-album-square img,
.cafe-cine-poster img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Même hauteur de partie texte pour obtenir des blocs réellement identiques. */
.cafe-event-showcase-body,
.cafe-bd-library-body,
.cafe-album-tile-info,
.cafe-cine-body{
  box-sizing:border-box;
  display:flex;
  flex:0 0 var(--cafe-showcase-body-height);
  flex-direction:column;
  height:var(--cafe-showcase-body-height);
  min-height:var(--cafe-showcase-body-height);
  overflow:hidden;
  padding:17px;
}

/* Titres sur deux lignes maximum pour préserver le gabarit. */
.cafe-event-showcase-body h3,
.cafe-bd-library-title,
.cafe-album-tile-title,
.cafe-cine-body h3{
  min-height:2.35em;
  max-height:2.35em;
  overflow:hidden;
  line-height:1.18;
}

.cafe-event-showcase-body h3,
.cafe-cine-body h3{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.cafe-bd-library-title,
.cafe-album-tile-title{
  display:-webkit-box;
  white-space:normal;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

/* Les informations secondaires restent compactes. */
.cafe-event-showcase-body p,
.cafe-cine-body p{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}

.cafe-bd-page-count,
.cafe-album-tile-artist{
  flex:0 0 auto;
}

/* Boutons / infos du bas alignés au bas de toutes les cartes. */
.cafe-event-card-actions,
.cafe-album-tile-bottom,
.cafe-cine-body > .btn{
  margin-top:auto;
}

.cafe-bd-library-body .cafe-bd-page-count{
  margin-top:auto;
}

/* Les éléments Musique gardent leur identité tout en prenant le même gabarit. */
.cafe-album-square{
  box-shadow:none;
}

.cafe-album-tile-info{
  padding:17px;
}

.cafe-album-tile-bottom{
  width:100%;
}

/* CinéChapi conserve son bouton lecture central. */
.cafe-cine-body{
  padding:17px;
}

/* Responsive calqué sur la page Événements. */
@media(max-width:950px){
  .cafe-event-showcase-grid,
  .cafe-bd-library-grid,
  .cafe-album-shelf,
  .cafe-cine-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px){
  .cafe-event-showcase-grid,
  .cafe-bd-library-grid,
  .cafe-album-shelf,
  .cafe-cine-grid{
    grid-template-columns:1fr;
  }

  :root{
    --cafe-showcase-body-height:210px;
  }
}


/* ===== v0.16.6 — Staff en quinconce légèrement chevauché ===== */

.staff-layout-staggered{
  display:block;
  overflow:visible;
  padding:10px 0 62px;
}

.staff-staggered{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  width:100%;
  margin-inline:auto;
  padding:4px 10px;
  overflow:visible;
}

.staff-staggered .staff-staggered-card{
  position:relative;
  flex:0 0 180px;
  width:180px;
  min-width:0;
  height:auto;
  margin:0;
  transition:
    transform .22s cubic-bezier(.2,.8,.25,1.15),
    box-shadow .22s ease,
    z-index 0s;
}

.staff-staggered .staff-staggered-card + .staff-staggered-card{
  margin-left:-16px;
}

.staff-staggered .staff-staggered-card:nth-child(odd){
  z-index:1;
  transform:translateY(54px);
}

.staff-staggered .staff-staggered-card:nth-child(even){
  z-index:2;
  transform:translateY(0);
}

.staff-staggered .actor-portrait{
  width:150px;
  max-width:150px;
}

.staff-staggered .staff-staggered-card:nth-child(odd):hover,
.staff-staggered .staff-staggered-card:nth-child(odd):focus-visible{
  z-index:20;
  transform:translateY(43px) scale(1.045);
}

.staff-staggered .staff-staggered-card:nth-child(even):hover,
.staff-staggered .staff-staggered-card:nth-child(even):focus-visible{
  z-index:20;
  transform:translateY(-11px) scale(1.045);
}

@media(max-width:1000px){
  .staff-layout-staggered{
    padding-bottom:0;
  }

  .staff-staggered{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    max-width:760px;
  }

  .staff-staggered .staff-staggered-card,
  .staff-staggered .staff-staggered-card + .staff-staggered-card,
  .staff-staggered .staff-staggered-card:nth-child(odd),
  .staff-staggered .staff-staggered-card:nth-child(even),
  .staff-staggered .staff-staggered-card:nth-child(odd):hover,
  .staff-staggered .staff-staggered-card:nth-child(even):hover,
  .staff-staggered .staff-staggered-card:nth-child(odd):focus-visible,
  .staff-staggered .staff-staggered-card:nth-child(even):focus-visible{
    width:100%;
    margin-left:0;
    transform:none;
  }

  .staff-staggered .actor-portrait{
    width:min(86%,160px);
    max-width:160px;
  }
}

@media(max-width:650px){
  .staff-staggered{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:500px;
  }
}

@media(max-width:390px){
  .staff-staggered{
    grid-template-columns:1fr;
    max-width:250px;
  }
}


/* ===== v0.16.7 — Staff quinconce plus aéré ===== */

/*
 * On garde le mouvement haut/bas, mais sans chevauchement horizontal.
 * 7 cartes de 155 px + 6 espaces de 14 px = 1169 px : ça tient dans le
 * conteneur desktop de 1180 px tout en respirant beaucoup mieux.
 */
@media(min-width:1001px){
  .staff-staggered{
    gap:14px;
    padding-inline:0;
  }

  .staff-staggered .staff-staggered-card,
  .staff-staggered .staff-staggered-card + .staff-staggered-card{
    flex:0 0 155px;
    width:155px;
    margin-left:0;
  }

  .staff-staggered .actor-portrait{
    width:132px;
    max-width:132px;
  }

  .staff-staggered .staff-staggered-card:nth-child(odd){
    transform:translateY(58px);
  }

  .staff-staggered .staff-staggered-card:nth-child(even){
    transform:translateY(0);
  }

  .staff-staggered .staff-staggered-card:nth-child(odd):hover,
  .staff-staggered .staff-staggered-card:nth-child(odd):focus-visible{
    transform:translateY(47px) scale(1.045);
  }

  .staff-staggered .staff-staggered-card:nth-child(even):hover,
  .staff-staggered .staff-staggered-card:nth-child(even):focus-visible{
    transform:translateY(-11px) scale(1.045);
  }
}


/* ===== v0.16.8 — Main Second Life collée au bord gauche ===== */

/*
 * La main est désormais positionnée par rapport au bandeau entier,
 * et non plus par rapport au conteneur central.
 */
.site-header .header-sl-logo{
  position:absolute;
  left:max(5px, env(safe-area-inset-left));
  top:15px;
  z-index:4;
  margin:0;
}

/*
 * Sur les écrans moins larges, on réserve juste la place nécessaire
 * devant le logo Café Sympa pour éviter tout chevauchement.
 */
@media(max-width:1220px){
  .site-header .nav-wrap{
    padding-left:54px;
  }
}

@media(max-width:900px){
  .site-header .nav-wrap{
    padding-left:48px;
  }

  .site-header .header-sl-logo{
    top:14px;
  }
}

@media(max-width:760px){
  .site-header .nav-wrap{
    padding-left:43px;
  }
}

@media(max-width:480px){
  .site-header .nav-wrap{
    padding-left:37px;
  }

  .site-header .header-sl-logo{
    left:max(4px, env(safe-area-inset-left));
  }
}


/* ==========================================================================
   v0.17.0 — Finition du Café
   ========================================================================== */

:root{
  --cafe-ui-radius:24px;
  --cafe-ui-radius-small:16px;
  --cafe-ui-gap:16px;
  --cafe-focus:#8b2f73;
}

/* Accessibilité */
.cafe-skip-link{
  position:fixed;
  left:12px;
  top:10px;
  z-index:100000;
  padding:10px 14px;
  border-radius:12px;
  background:#fff;
  color:#2e282c;
  font-weight:900;
  text-decoration:none;
  transform:translateY(-160%);
  box-shadow:0 8px 28px rgba(0,0,0,.2);
}
.cafe-skip-link:focus{transform:translateY(0)}
:focus-visible{
  outline:3px solid var(--cafe-focus);
  outline-offset:3px;
}
#main-content,
[id]{scroll-margin-top:110px}
.screen-reader-text{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* Header mobile propre */
.cafe-mobile-menu-toggle{
  display:none;
  width:44px;
  height:44px;
  flex:none;
  place-items:center;
  border:1px solid rgba(81,70,79,.10);
  border-radius:14px;
  background:rgba(255,255,255,.76);
  color:var(--ink);
  font-size:1.25rem;
}
.cafe-mobile-account-nav{display:none!important}
.cafe-nav-search{font-size:1.05rem}

@media(max-width:900px){
  .site-header .nav-wrap{
    position:relative;
    flex-wrap:nowrap;
    gap:10px;
  }
  .cafe-mobile-menu-toggle{display:grid;margin-left:auto}
  .site-header .account-link{display:none}
  .site-header .main-nav{
    position:absolute;
    left:12px;
    right:12px;
    top:calc(100% + 7px);
    z-index:60;
    display:none;
    max-height:calc(100vh - 120px);
    overflow:auto;
    padding:12px;
    border:1px solid rgba(81,70,79,.10);
    border-radius:22px;
    background:rgba(255,250,244,.98);
    box-shadow:0 18px 45px rgba(52,40,48,.18);
    backdrop-filter:blur(20px);
  }
  body.cafe-mobile-menu-open .site-header .main-nav{
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:stretch;
    gap:7px;
  }
  .site-header .main-nav a{
    display:flex;
    min-height:44px;
    align-items:center;
    justify-content:center;
    text-align:center;
  }
  .cafe-mobile-account-nav{display:flex!important}
}
@media(max-width:520px){
  body.cafe-mobile-menu-open .site-header .main-nav{grid-template-columns:1fr}
  .brand-logo-link{max-width:55vw}
}

/* Correction lisibilité des sous-titres sur le fond aquarelle */
.home-staff-head .section-lead,
.home-whatsnew-head .section-lead,
.home-papote-head .section-lead{
  color:#50484d!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Cohérence boutons et surfaces */
.btn{
  min-height:42px;
  justify-content:center;
}
.cafe-panel,
.card,
.cafe-event-showcase-card,
.cafe-bd-library-card,
.cafe-album-tile,
.cafe-cine-card{
  border-color:rgba(81,70,79,.08);
}
@media(max-width:620px){
  .btn{min-height:46px}
  input,select,textarea{font-size:16px!important}
}

/* Mon compte : navigation interne */
.cafe-account-nav{
  position:sticky;
  top:98px;
  z-index:12;
  display:flex;
  gap:7px;
  overflow-x:auto;
  margin:18px 0 24px;
  padding:8px;
  border:1px solid rgba(81,70,79,.08);
  border-radius:18px;
  background:rgba(255,250,246,.92);
  box-shadow:0 8px 22px rgba(81,70,79,.06);
  scrollbar-width:none;
}
.cafe-account-nav::-webkit-scrollbar{display:none}
.cafe-account-nav a{
  flex:none;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:#51464d;
  font-size:.78rem;
  font-weight:900;
  text-decoration:none;
}
.cafe-account-nav a:hover{background:#fff}
.cafe-account-section,
.cafe-community-settings,
.cafe-my-publications{
  margin-top:26px;
  padding:20px;
  border:1px solid rgba(81,70,79,.08);
  border-radius:24px;
  background:rgba(255,255,255,.58);
}
.cafe-account-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:15px;
  margin-bottom:15px;
}
.cafe-account-section-head h3{margin:4px 0}
.cafe-account-section-head p{margin:0;color:#6d6268}

.cafe-preference-toggle{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px;
  border:1px solid rgba(81,70,79,.08);
  border-radius:17px;
  background:rgba(255,255,255,.66);
}
.cafe-preference-toggle > span{display:grid;gap:3px}
.cafe-preference-toggle small{color:#776b72;font-weight:500}
.cafe-preference-toggle input{
  width:22px!important;
  height:22px!important;
  flex:none;
}
.cafe-community-profile-form{display:grid;gap:12px}

.cafe-my-publication-list{display:grid;gap:8px}
.cafe-my-publication-list article{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:11px;
  border-radius:15px;
  background:rgba(255,255,255,.74);
}
.cafe-my-publication-list article > div{display:grid;gap:2px}
.cafe-my-publication-list small{color:#81757c}

/* Notifications */
.cafe-member-notifications-head{
  align-items:center;
}
.cafe-notifications-clear-form{margin-left:auto}
.cafe-notification-open{
  display:inline-block;
  margin-top:4px;
  color:#8b5b43;
  font-size:.76rem;
  font-weight:900;
  text-decoration:none;
}

/* Annuaire membres */
.cafe-members-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) 180px auto;
  align-items:end;
  gap:10px;
  margin-bottom:22px;
  padding:13px;
  border-radius:20px;
  background:rgba(255,255,255,.58);
}
.cafe-members-toolbar label{display:grid;gap:5px;font-size:.77rem;font-weight:850}
.cafe-members-toolbar input,
.cafe-members-toolbar select{
  min-height:44px;
  padding:9px 11px;
  border:1px solid rgba(81,70,79,.12);
  border-radius:13px;
  background:#fff;
}
.cafe-members-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.cafe-member-card{
  overflow:hidden;
  border:1px solid rgba(81,70,79,.08);
  border-radius:26px;
  background:rgba(255,255,255,.82);
  box-shadow:0 12px 30px rgba(81,70,79,.08);
}
.cafe-member-card-avatar{
  display:grid;
  width:100%;
  aspect-ratio:16/11;
  place-items:center;
  overflow:hidden;
  background:linear-gradient(135deg,#f5d6e5,#e5e0fb);
  font-size:3rem;
}
.cafe-member-card-avatar img{
  width:100%;height:100%;object-fit:cover;
}
.cafe-member-card-body{padding:17px}
.cafe-member-card-body h3{margin:8px 0 2px}
.cafe-member-card-body small{color:#7d6f77}
.cafe-member-card-body p{color:#665a61;font-size:.88rem}
.cafe-member-mood{
  padding:8px 10px;
  border-radius:13px;
  background:rgba(246,224,237,.66);
}
.cafe-member-card.is-cafe_vip{
  background:linear-gradient(160deg,rgba(255,252,232,.92),rgba(246,236,255,.92));
}

/* Recherche */
.cafe-global-search-form{
  display:flex;
  gap:10px;
  margin-bottom:24px;
}
.cafe-global-search-form input{
  flex:1;
  min-width:0;
  min-height:50px;
  padding:11px 15px;
  border:1px solid rgba(81,70,79,.12);
  border-radius:999px;
  background:rgba(255,255,255,.88);
}
.cafe-search-results-head{display:flex;gap:7px;margin-bottom:12px;color:#665b61}
.cafe-search-results{display:grid;gap:10px}
.cafe-search-result{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:15px;
  padding:11px;
  border:1px solid rgba(81,70,79,.08);
  border-radius:20px;
  background:rgba(255,255,255,.74);
  text-decoration:none;
}
.cafe-search-thumb{
  display:grid;
  aspect-ratio:4/3;
  place-items:center;
  overflow:hidden;
  border-radius:14px;
  background:linear-gradient(135deg,#f6d8e5,#e9e4f8);
  font-size:2rem;
}
.cafe-search-thumb img{width:100%;height:100%;object-fit:cover}
.cafe-search-result h3{margin:6px 0 3px}
.cafe-search-result p{margin:0;color:#6f626a;font-size:.86rem}
.cafe-search-members{margin-top:28px}
.cafe-search-member-chips{display:flex;flex-wrap:wrap;gap:7px}
.cafe-search-member-chips span{
  padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.72);font-size:.76rem;
}

/* Calendrier */
.cafe-event-view-switch{
  display:flex;
  width:max-content;
  max-width:100%;
  gap:5px;
  margin:0 0 20px;
  padding:5px;
  border-radius:999px;
  background:rgba(255,255,255,.65);
}
.cafe-event-view-switch a{
  padding:8px 12px;
  border-radius:999px;
  color:#62565d;
  font-size:.79rem;
  font-weight:900;
  text-decoration:none;
}
.cafe-event-view-switch a.is-active{background:#3c3539;color:white}
.cafe-calendar-head{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin-bottom:12px;
}
.cafe-calendar-head h3{min-width:200px;margin:0;text-align:center;text-transform:capitalize}
.cafe-calendar-weekdays,
.cafe-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:7px;
}
.cafe-calendar-weekdays{margin-bottom:7px}
.cafe-calendar-weekdays span{
  color:#746870;
  font-size:.72rem;
  font-weight:900;
  text-align:center;
}
.cafe-calendar-day{
  min-height:126px;
  padding:8px;
  border:1px solid rgba(81,70,79,.08);
  border-radius:15px;
  background:rgba(255,255,255,.60);
}
.cafe-calendar-day.is-empty{background:rgba(255,255,255,.18)}
.cafe-calendar-day.is-today{box-shadow:inset 0 0 0 2px rgba(235,75,143,.55)}
.cafe-calendar-day-number{display:block;margin-bottom:6px;color:#554a50}
.cafe-calendar-events{display:grid;gap:5px}
.cafe-calendar-event{
  display:grid;
  gap:1px;
  padding:6px;
  border-radius:9px;
  background:rgba(243,200,217,.55);
  text-decoration:none;
  font-size:.67rem;
  line-height:1.15;
}
.cafe-calendar-event.is-chapiclub{background:rgba(157,239,225,.66)}
.cafe-calendar-event small{font-weight:900}
.cafe-calendar-event span{overflow:hidden;text-overflow:ellipsis}

/* Intérêt événement */
.cafe-event-interest{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:24px;
  padding:18px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  background:rgba(255,255,255,.07);
}
.cafe-event-interest h3{margin:4px 0}
.cafe-event-interest p{margin:0;color:inherit;opacity:.75}
.cafe-event-interest-side{display:grid;justify-items:end;gap:9px}
.cafe-event-interest-avatars{display:flex;justify-content:flex-end}
.cafe-event-interest-avatars img{
  width:42px;height:42px;margin-left:-8px;border:3px solid rgba(48,43,39,.93);border-radius:50%;object-fit:cover;
}

/* 404 */
.cafe-404-card{
  display:grid;
  grid-template-columns:minmax(240px,38%) minmax(0,1fr);
  align-items:center;
  gap:32px;
  overflow:hidden;
  padding:clamp(22px,5vw,50px);
  border-radius:34px;
  background:rgba(255,255,255,.76);
  box-shadow:var(--shadow);
}
.cafe-404-visual{position:relative;max-width:360px;margin:auto}
.cafe-404-visual img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;box-shadow:0 15px 40px rgba(68,50,60,.18)}
.cafe-404-visual span{
  position:absolute;right:-5px;bottom:0;padding:7px 13px;border-radius:999px;background:#3c3338;color:#fff;font-size:1.4rem;font-weight:950;
}
.cafe-404-copy h1{margin:7px 0 12px;font-size:clamp(2.3rem,6vw,4.6rem);line-height:.95}
.cafe-404-copy p{max-width:640px;color:#685c63}

/* Animation légère uniquement */
@media(hover:hover){
  .cafe-member-card,
  .cafe-search-result,
  .cafe-vip-grid article,
  .home-whatsnew-card{
    transition:transform .18s ease,box-shadow .18s ease;
  }
  .cafe-member-card:hover,
  .cafe-search-result:hover,
  .cafe-vip-grid article:hover,
  .home-whatsnew-card:hover{
    transform:translateY(-4px);
    box-shadow:0 17px 36px rgba(81,70,79,.11);
  }
}

/* Performance de rendu des longues zones hors écran */
.cafe-members-grid,
.cafe-search-results,
.cafe-complaint-archive-groups{
  content-visibility:auto;
  contain-intrinsic-size:800px;
}

/* Responsive */
@media(max-width:900px){
  .cafe-members-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cafe-vip-grid{grid-template-columns:1fr}
  .cafe-calendar-day{min-height:100px}
}
@media(max-width:720px){
  .cafe-account-nav{top:88px}
  .cafe-account-section-head{flex-direction:column}
  .cafe-members-toolbar{grid-template-columns:1fr}
  .cafe-global-search-form{align-items:stretch;flex-direction:column}
  .cafe-event-interest{align-items:flex-start;flex-direction:column}
  .cafe-event-interest-side{justify-items:start}
  .cafe-404-card{grid-template-columns:1fr;text-align:center}
  .cafe-404-copy .actions{justify-content:center}
  .cafe-calendar-weekdays{display:none}
  .cafe-calendar-grid{grid-template-columns:1fr}
  .cafe-calendar-day.is-empty{display:none}
  .cafe-calendar-day{
    min-height:0;
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    gap:8px;
  }
  .cafe-calendar-day:not(.has-event){display:none}
  .cafe-calendar-day-number{margin:0}
}
@media(max-width:560px){
  .cafe-members-grid{grid-template-columns:1fr}
  .cafe-my-publication-list article{grid-template-columns:1fr}
  .cafe-my-publication-list article .btn{width:100%}
  .cafe-search-result{grid-template-columns:84px minmax(0,1fr)}
  .cafe-vip-hero{align-items:flex-start;flex-direction:column}
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}


/* ===== v0.17.2 — Fiche événement plus large + affiche complète ===== */

/*
 * La fiche événement utilise davantage de largeur disponible.
 * On ne touche pas aux autres pages.
 */
body.single-cafe_event .page-shell > .container{
  width:min(1540px,calc(100% - 36px));
  max-width:none;
}

/*
 * La colonne affiche est un peu plus généreuse, mais surtout l'image
 * n'est plus recadrée : object-fit:contain montre l'affiche en entier.
 */
body.single-cafe_event .cafe-event-single-layout{
  grid-template-columns:minmax(420px,46%) minmax(0,1fr);
}

body.single-cafe_event .cafe-event-single-poster{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  background:#211e20;
}

body.single-cafe_event .cafe-event-single-poster img{
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
}

/* Le contenu gagne un peu d'espace horizontal. */
body.single-cafe_event .cafe-event-single-info{
  padding:clamp(24px,3.2vw,48px);
}

/* Bloc "Je serai là" : texte et bouton restent bien lisibles. */
body.single-cafe_event .cafe-event-interest{
  gap:24px;
}

body.single-cafe_event .cafe-event-interest-side{
  min-width:max-content;
}

body.single-cafe_event .cafe-event-interest-side form{
  margin:0;
}

body.single-cafe_event .cafe-event-interest-side .btn{
  width:auto;
  min-width:150px;
  max-width:none;
  padding-inline:18px;
  white-space:nowrap;
}

/* Empêche les anciens styles ronds/étroits de forcer le bouton. */
body.single-cafe_event .cafe-event-interest-side button.btn{
  border-radius:999px;
}

/* Responsive : on revient sur une colonne quand l'espace devient limité. */
@media(max-width:1050px){
  body.single-cafe_event .cafe-event-single-layout{
    grid-template-columns:1fr;
  }

  body.single-cafe_event .cafe-event-single-poster{
    width:100%;
  }

  body.single-cafe_event .cafe-event-single-poster img{
    width:100%;
    height:auto;
  }
}

@media(max-width:720px){
  body.single-cafe_event .page-shell > .container{
    width:min(100% - 20px,1540px);
  }

  body.single-cafe_event .cafe-event-interest-side{
    width:100%;
    min-width:0;
  }

  body.single-cafe_event .cafe-event-interest-side .btn{
    width:100%;
    min-width:0;
  }
}


/* ==========================================================================
   Ancien blocage mobile v0.18 supprimé en v0.20.1.
   Téléphones et tablettes utilisent désormais le thème responsive normal.
   ========================================================================== */

/* Jetons */
.cafe-token-wallet-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.cafe-token-wallet-head h3{margin:4px 0}
.cafe-token-wallet-head p{margin:0;color:#756970}

.cafe-token-balance{
  flex:none;
  min-width:120px;
  padding:13px 16px;
  border-radius:20px;
  background:linear-gradient(135deg,#fff0b7,#f4d9ff);
  color:#705214;
  font-size:1.8rem;
  text-align:center;
}

.cafe-token-balance small{
  display:block;
  font-size:.68rem;
  text-transform:uppercase;
}

.cafe-token-ledger{margin-top:12px}
.cafe-token-ledger > div{display:grid;gap:6px;margin-top:8px}
.cafe-token-ledger p{
  display:grid;
  grid-template-columns:55px minmax(0,1fr) auto;
  gap:8px;
  margin:0;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.65);
}
.cafe-token-ledger small{color:#83767d}

.cafe-token-admin-list{display:grid;gap:8px}
.cafe-token-admin-list article{
  display:grid;
  grid-template-columns:minmax(160px,1fr) 90px minmax(360px,1.5fr);
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:16px;
  background:rgba(255,255,255,.7);
}
.cafe-token-admin-list article > div{display:grid}
.cafe-token-admin-list small{color:#84777e}
.cafe-token-admin-balance{font-weight:950}
.cafe-token-admin-list form{
  display:grid;
  grid-template-columns:90px minmax(120px,1fr) auto;
  gap:7px;
}
.cafe-token-admin-list input{
  min-width:0;
  min-height:40px;
  padding:7px 9px;
  border:1px solid rgba(81,70,79,.12);
  border-radius:11px;
}

@media(max-width:900px){
  .cafe-token-admin-list article{grid-template-columns:1fr}
  .cafe-token-admin-list form{grid-template-columns:1fr}
}

@media(max-width:720px){
  .cafe-donation-hero{align-items:flex-start;flex-direction:column}
  .cafe-donation-form{align-items:stretch;flex-direction:column}
  .cafe-donation-meter{grid-template-columns:1fr}
  .cafe-token-wallet-head{flex-direction:column}
}


/* ===== v0.18.1 — Jeton de liaison + identité Second Life ===== */

.cafe-sl-linked-name{
  position:relative;
  display:inline-block;
  max-width:100%;
  color:inherit;
  font-weight:900;
  text-decoration:underline;
  text-decoration-style:dotted;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  cursor:help;
}

.cafe-sl-linked-name::after{
  content:attr(data-sl-resident);
  position:absolute;
  left:50%;
  bottom:calc(100% + 9px);
  z-index:60;
  width:max-content;
  max-width:250px;
  padding:7px 10px;
  border-radius:11px;
  background:#3c3438;
  color:#fff8fb;
  box-shadow:0 10px 28px rgba(50,39,46,.20);
  font-size:.72rem;
  font-weight:750;
  line-height:1.25;
  white-space:normal;
  pointer-events:none;
  opacity:0;
  transform:translate(-50%,5px);
  transition:opacity .16s ease,transform .16s ease;
}

.cafe-sl-linked-name::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:calc(100% + 3px);
  z-index:61;
  border:6px solid transparent;
  border-top-color:#3c3438;
  pointer-events:none;
  opacity:0;
  transform:translateX(-50%);
  transition:opacity .16s ease;
}

.cafe-sl-linked-name:hover::after,
.cafe-sl-linked-name:focus-visible::after,
.cafe-sl-linked-name:hover::before,
.cafe-sl-linked-name:focus-visible::before{
  opacity:1;
}

.cafe-sl-linked-name:hover::after,
.cafe-sl-linked-name:focus-visible::after{
  transform:translate(-50%,0);
}


/* ===== v0.18.2 — Identité Second Life dans le forum ===== */

.cafe-forum .cafe-forum-sl-author,
.cafe-topic-page .cafe-forum-sl-author{
  color:inherit;
}

.cafe-topic-card .cafe-topic-author.cafe-sl-linked-name{
  display:inline-block;
  max-width:180px;
  overflow:visible;
  white-space:nowrap;
}

.cafe-topic-author.cafe-sl-linked-name,
.cafe-comment-sl-author.cafe-sl-linked-name,
.cafe-topic-page-sl-author.cafe-sl-linked-name,
.cafe-reply-form-sl-author.cafe-sl-linked-name{
  text-decoration-color:rgba(232,96,158,.72);
}

.cafe-forum-logged-in-as{
  margin:0 0 12px;
  color:#786b72;
  font-size:.82rem;
}

.cafe-sl-linked-name-no-resident{
  text-decoration:none;
  cursor:default;
}

.cafe-sl-linked-name-no-resident::before,
.cafe-sl-linked-name-no-resident::after{
  display:none!important;
}


/* ===== v0.18.3 — Mise en ligne / légal / RGPD ===== */

.cafe-legal-inline{
  margin:10px 0 0;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(255,255,255,.58);
  color:#756970;
  font-size:.75rem;
  line-height:1.45;
}

.cafe-legal-inline a{
  font-weight:850;
}


.cafe-legal-notice-page code{
  white-space:normal;
  word-break:break-word;
}



/* ==========================================================================
   v0.19.0 — Axel + tchat en direct
   ========================================================================== */

.cafe-chat-corner{
  position:fixed;
  left:0;
  bottom:0;
  z-index:88;
  width:clamp(250px,19vw,380px);
  height:auto;
  pointer-events:none;
}

.cafe-chat-launcher{
  position:relative;
  display:block;
  width:100%;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  pointer-events:auto;
  line-height:0;
  transform:translate(-1px,1px);
  transform-origin:left bottom;
  filter:drop-shadow(0 10px 15px rgba(61,42,52,.18));
  transition:transform .18s ease,filter .18s ease;
}

.cafe-chat-launcher:hover,
.cafe-chat-launcher:focus-visible{
  transform:translate(-1px,-3px) scale(1.018);
  filter:drop-shadow(0 14px 20px rgba(61,42,52,.24));
}

.cafe-chat-launcher img{
  display:block;
  width:100%;
  height:auto;
  margin:0;
  padding:0;
  object-fit:contain;
  object-position:left bottom;
  vertical-align:bottom;
  user-select:none;
  -webkit-user-drag:none;
}

.cafe-chat-modal[hidden]{display:none!important}

.cafe-chat-modal{
  position:fixed;
  inset:0;
  z-index:165;
  display:grid;
  place-items:center;
  padding:20px;
  pointer-events:auto;
}

.cafe-chat-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(42,29,38,.58);
  backdrop-filter:blur(6px);
}

.cafe-chat-panel{
  position:relative;
  z-index:1;
  width:min(560px,100%);
  max-height:min(760px,calc(100vh - 38px));
  overflow:hidden;
  display:grid;
  grid-template-rows:auto auto minmax(220px,1fr) auto auto;
  border:1px solid rgba(226,113,163,.24);
  border-radius:30px;
  background:
    radial-gradient(circle at 100% 0,rgba(255,202,225,.62),transparent 27%),
    radial-gradient(circle at 0 100%,rgba(222,234,255,.58),transparent 30%),
    #fffaf7;
  box-shadow:0 30px 80px rgba(43,29,38,.28);
}

.cafe-chat-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:22px 22px 14px;
}

.cafe-chat-head h2{
  margin:3px 0 3px;
  color:#744735;
  font-size:clamp(1.65rem,3vw,2.25rem);
}

.cafe-chat-head p{
  margin:0;
  color:#71636b;
  font-size:.82rem;
}

.cafe-chat-close{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  flex:none;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.86);
  color:#785b68;
  box-shadow:0 5px 15px rgba(67,47,57,.10);
  font-size:1.6rem;
  cursor:pointer;
}

.cafe-chat-statusbar{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 20px 10px;
  padding:9px 12px;
  border-radius:14px;
  background:rgba(255,255,255,.65);
  color:#776a71;
  font-size:.72rem;
}

.cafe-chat-statusbar strong{color:#4b4146}
.cafe-chat-statusbar span:last-child{margin-left:auto}

.cafe-chat-live-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#39b963;
  box-shadow:0 0 0 4px rgba(57,185,99,.13);
}

.cafe-chat-messages{
  min-height:260px;
  max-height:420px;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0 15px;
  padding:12px 10px 16px;
  border:1px solid rgba(99,75,88,.08);
  border-radius:20px;
  background:rgba(255,255,255,.61);
  scrollbar-width:thin;
}

.cafe-chat-message{
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  align-items:start;
  gap:9px;
}

.cafe-chat-message.is-mine{
  grid-template-columns:minmax(0,1fr) 40px;
}

.cafe-chat-message.is-mine .cafe-chat-avatar{grid-column:2}
.cafe-chat-message.is-mine .cafe-chat-message-body{
  grid-column:1;
  grid-row:1;
  justify-self:end;
  background:rgba(255,220,235,.78);
}

.cafe-chat-avatar{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  overflow:hidden;
  border:2px solid rgba(226,91,151,.34);
  border-radius:50%;
  background:#fff3f8;
  font-size:1.2rem;
}

.cafe-chat-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.cafe-chat-message-body{
  min-width:0;
  max-width:88%;
  padding:9px 11px;
  border-radius:6px 18px 18px 18px;
  background:rgba(232,238,255,.83);
}

.cafe-chat-message.is-mine .cafe-chat-message-body{
  border-radius:18px 6px 18px 18px;
}

.cafe-chat-message-meta{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  margin-bottom:3px;
}

.cafe-chat-author{
  position:relative;
  color:#4a3e45;
  font-size:.78rem;
  font-weight:950;
  cursor:default;
}

.cafe-chat-author[data-resident]{
  text-decoration:underline dotted rgba(219,69,136,.65);
  text-underline-offset:3px;
  cursor:help;
}

.cafe-chat-author[data-resident]::after{
  content:attr(data-resident);
  position:absolute;
  left:0;
  bottom:calc(100% + 8px);
  z-index:25;
  width:max-content;
  max-width:220px;
  padding:6px 8px;
  border-radius:9px;
  background:#3c3438;
  color:#fff;
  font-size:.66rem;
  font-weight:750;
  white-space:normal;
  pointer-events:none;
  opacity:0;
  transform:translateY(4px);
  transition:opacity .14s ease,transform .14s ease;
}

.cafe-chat-author[data-resident]:hover::after,
.cafe-chat-author[data-resident]:focus-visible::after{
  opacity:1;
  transform:translateY(0);
}

.cafe-chat-message-meta time{
  margin-left:auto;
  color:#96888f;
  font-size:.64rem;
}

.cafe-chat-admin-badge{
  padding:2px 6px;
  border-radius:999px;
  background:#ef6ba6;
  color:#fff;
  font-size:.57rem;
  font-weight:950;
}

.cafe-chat-delete{
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(124,88,104,.10);
  color:#8d6577;
  cursor:pointer;
}

.cafe-chat-message-body p{
  margin:0;
  color:#4a4447;
  font-size:.83rem;
  line-height:1.42;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}

.cafe-chat-loading,
.cafe-chat-empty{
  margin:auto;
  padding:26px 15px;
  color:#897981;
  text-align:center;
}

.cafe-chat-empty span{display:block;font-size:2.2rem}
.cafe-chat-empty strong{display:block;margin:5px 0;color:#5e5057}
.cafe-chat-empty p{margin:0;font-size:.78rem}

.cafe-chat-form{
  display:grid;
  gap:8px;
  padding:12px 20px 8px;
}

.cafe-chat-form textarea{
  width:100%;
  min-height:66px;
  max-height:130px;
  resize:vertical;
  padding:11px 12px;
  border:1px solid rgba(104,80,94,.15);
  border-radius:16px;
  background:rgba(255,255,255,.9);
  color:#443a40;
  font:inherit;
}

.cafe-chat-form-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.cafe-chat-form-row small{
  color:#95868d;
  font-size:.65rem;
}

.cafe-chat-feedback{
  min-height:16px;
  color:#4b8660;
  font-size:.68rem;
}

.cafe-chat-feedback.is-error{color:#b73f55}

.cafe-chat-privacy{
  margin:0;
  padding:0 20px 16px;
  color:#918188;
  font-size:.64rem;
  line-height:1.4;
}

.cafe-chat-gate{
  grid-row:2/-1;
  padding:50px 24px 56px;
  text-align:center;
}

.cafe-chat-gate > div{font-size:3rem}
.cafe-chat-gate h3{margin:9px 0 6px;color:#584850;font-size:1.55rem}
.cafe-chat-gate p{margin:0 auto 18px;max-width:390px;color:#796c73}

body.cafe-chat-modal-open{overflow:hidden}

@media(max-width:1100px) and (pointer:coarse){
  .cafe-chat-corner{display:none!important}
}

@media(max-width:760px){
  .cafe-chat-corner{display:none!important}
  .cafe-chat-panel{max-height:calc(100vh - 20px)}
}


/* ===== v0.19.1 — Axel redessiné, collé au bord ===== */

html,
body{
  overflow-x:hidden;
}

.cafe-chat-corner{
  inset:auto auto 0 0;
  margin:0!important;
  padding:0!important;
}

.cafe-chat-launcher,
.cafe-chat-launcher img{
  margin-left:0!important;
  margin-bottom:0!important;
}

@media(min-width:1400px){
  .cafe-chat-corner{
    width:360px;
  }
}

@media(max-width:1280px) and (pointer:fine){
  .cafe-chat-corner{
    width:285px;
  }
}



/* ===== v0.19.2 — Axel réellement intégré + taille divisée par deux ===== */

.cafe-chat-corner{
  width:180px!important;
  left:0!important;
  bottom:0!important;
  margin:0!important;
  padding:0!important;
}

.cafe-chat-launcher{
  width:180px!important;
  max-width:180px!important;
  margin:0!important;
  padding:0!important;
  transform:translate(-1px,1px)!important;
}

.cafe-chat-launcher:hover,
.cafe-chat-launcher:focus-visible{
  transform:translate(-1px,-2px) scale(1.015)!important;
}

.cafe-chat-launcher img{
  display:block!important;
  width:180px!important;
  max-width:180px!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:left bottom!important;
}

@media(max-width:1280px) and (pointer:fine){
  .cafe-chat-corner,
  .cafe-chat-launcher,
  .cafe-chat-launcher img{
    width:145px!important;
    max-width:145px!important;
  }
}

@media(max-width:1100px) and (pointer:coarse),
       (max-width:760px){
  .cafe-chat-corner{
    display:none!important;
  }
}


/* ==========================================================================
   v0.19.5 — correction accueil
   ========================================================================== */

/* Le titre + texte du Staff sont retirés du HTML ; portraits conservés. */
body.home .home-staff-head{
  display:none!important;
}

/* Le coin papote est retiré uniquement de l'accueil. */
body.home .home-papote-section{
  display:none!important;
}

/* Phrase sous "Quoi de neuf ?" : noir doux. */
body.home .home-whatsnew-head .section-lead,
body.home .home-whatsnew-head p.section-lead{
  color:#4d484b!important;
  opacity:1!important;
  text-shadow:none!important;
}

/* Pied de page demandé en rose fuchsia. */
.site-footer,
.site-footer .footer-grid,
.site-footer .footer-grid > div,
.site-footer strong,
.site-footer small,
.site-footer .footer-links,
.site-footer .footer-links a,
.site-footer .footer-links a:link,
.site-footer .footer-links a:visited{
  color:#5a3025!important;
}

.site-footer .footer-links a{
  text-decoration-color:rgba(224,43,138,.48)!important;
}

.site-footer .footer-links a:hover,
.site-footer .footer-links a:focus-visible{
  color:#5a3025!important;
}



/* ==========================================================================
   v0.19.6 — sous-titre Quoi de neuf réellement noir
   ========================================================================== */

body.home .home-whatsnew-head .cafe-whatsnew-subtitle,
.home-whatsnew-head .cafe-whatsnew-subtitle,
p.cafe-whatsnew-subtitle{
  color:#222222!important;
  opacity:1!important;
  text-shadow:none!important;
}



/* ==========================================================================
   v0.19.7 — Staff 4 par page + pagination
   ========================================================================== */

.staff-carousel{
  padding-bottom:18px;
}

.staff-carousel-pages{
  position:relative;
  min-height:300px;
}

.staff-carousel-page[hidden]{
  display:none!important;
}

.staff-carousel-page{
  animation:cafeStaffPageIn .24s ease both;
}

@keyframes cafeStaffPageIn{
  from{opacity:0; transform:translateY(6px);}
  to{opacity:1; transform:translateY(0);}
}

@media(min-width:1001px){
  .staff-carousel .staff-staggered{
    max-width:760px;
    gap:24px;
  }

  .staff-carousel .staff-staggered .staff-staggered-card,
  .staff-carousel .staff-staggered .staff-staggered-card + .staff-staggered-card{
    flex:0 0 155px;
    width:155px;
    margin-left:0;
  }
}

.staff-carousel-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:18px;
}

.staff-carousel-dot{
  width:13px;
  height:13px;
  padding:0;
  border:1px solid rgba(255,255,255,.9);
  border-radius:999px;
  background:#fff;
  opacity:.42;
  box-shadow:0 1px 6px rgba(51,34,43,.2);
  cursor:pointer;
  transition:opacity .18s ease, transform .18s ease, box-shadow .18s ease;
}

.staff-carousel-dot.is-active,
.staff-carousel-dot[aria-selected="true"]{
  opacity:1;
  transform:scale(1.08);
  box-shadow:0 1px 8px rgba(51,34,43,.28);
}

.staff-carousel-dot:hover,
.staff-carousel-dot:focus-visible{
  opacity:.82;
  outline:none;
  transform:scale(1.12);
}

@media(max-width:1000px){
  .staff-carousel-pages{
    min-height:0;
  }

  .staff-carousel .staff-staggered{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:520px;
  }
}



/* ==========================================================================
   v0.19.8 — Forum : demandes privées de modification
   ========================================================================== */

.cafe-forum-topic-request-button{
  margin-top:12px;
  width:max-content;
}

.cafe-forum-request-link{
  margin-left:8px;
  color:#744735!important;
  font-weight:850;
  text-decoration:none;
}

.cafe-forum-admin-request-panel{
  margin:18px 0;
  padding:20px;
  border-radius:24px;
  background:
    radial-gradient(circle at 92% 8%,rgba(255,194,222,.52),transparent 34%),
    rgba(255,250,252,.97);
  border:1px solid rgba(224,43,138,.18);
  box-shadow:0 10px 28px rgba(94,48,70,.07);
}

.cafe-forum-admin-request-panel h2{
  margin:6px 0 8px;
  color:#744735;
}

.cafe-forum-edit-request{
  margin:16px 0 20px;
  padding:17px 18px;
  border-radius:20px;
  background:rgba(255,238,247,.98);
  border:2px solid rgba(224,43,138,.24);
  box-shadow:0 8px 20px rgba(93,51,72,.06);
}

.cafe-forum-edit-request h3{
  margin:8px 0 10px;
  color:#8b5b43;
}

.cafe-forum-edit-request-reason{
  margin:10px 0;
  padding:12px 14px;
  border-radius:15px;
  background:#fff;
  border:1px solid rgba(224,43,138,.14);
}

.cafe-forum-edit-request-reason p{
  margin:5px 0 0;
  color:#393337;
}

.cafe-forum-edit-request small{
  color:#756a70;
}

.cafe-forum-edit-request-reply{
  margin-top:12px;
  margin-bottom:12px;
  padding:14px;
}



/* ==========================================================================
   v0.19.9 — Staff 5 portraits par page
   ========================================================================== */

@media(min-width:1001px){
  .staff-carousel .staff-staggered{
    max-width:960px;
    gap:22px;
    justify-content:center;
  }

  .staff-carousel .staff-staggered .staff-staggered-card,
  .staff-carousel .staff-staggered .staff-staggered-card + .staff-staggered-card{
    flex:0 0 155px;
    width:155px;
    margin-left:0;
  }

  /* La seconde page ne contient que 3 portraits : on la garde centrée. */
  .staff-carousel-page:nth-child(2) .staff-staggered{
    justify-content:center;
  }
}



/* ==========================================================================
   v0.19.10 — portraits qui viennent se placer puis restent immobiles
   ========================================================================== */

/* On remplace l'ancienne animation globale de page par celle des cartes. */
.staff-carousel-page{
  animation:none!important;
}

.staff-staggered-card{
  --staff-final-y:0px;
  --staff-enter-x:12px;
  --staff-enter-delay:0ms;
}

.staff-staggered-card:nth-child(odd){
  --staff-enter-x:-12px;
}

@media(min-width:1001px){
  .staff-staggered-card:nth-child(odd){
    --staff-final-y:58px;
  }

  .staff-staggered-card:nth-child(even){
    --staff-final-y:0px;
  }

  .staff-staggered-card.is-staff-entering{
    animation:
      cafeStaffSettleDesktop .46s cubic-bezier(.18,.82,.25,1.08)
      var(--staff-enter-delay) backwards;
  }

  @keyframes cafeStaffSettleDesktop{
    0%{
      opacity:.15;
      transform:
        translate(var(--staff-enter-x), calc(var(--staff-final-y) + 18px))
        scale(.965);
    }
    72%{
      opacity:1;
      transform:
        translate(calc(var(--staff-enter-x) * -.10), calc(var(--staff-final-y) - 3px))
        scale(1.008);
    }
    100%{
      opacity:1;
      transform:translate(0,var(--staff-final-y)) scale(1);
    }
  }
}

@media(max-width:1000px){
  .staff-staggered-card.is-staff-entering{
    animation:
      cafeStaffSettleCompact .42s cubic-bezier(.18,.82,.25,1.08)
      var(--staff-enter-delay) backwards;
  }

  @keyframes cafeStaffSettleCompact{
    0%{
      opacity:.15;
      transform:translate(var(--staff-enter-x),14px) scale(.97);
    }
    72%{
      opacity:1;
      transform:translate(0,-2px) scale(1.006);
    }
    100%{
      opacity:1;
      transform:none;
    }
  }
}

@media(prefers-reduced-motion:reduce){
  .staff-staggered-card.is-staff-entering{
    animation:none!important;
  }
}



/* ==========================================================================
   v0.19.11 — grande fiche Staff stable, portrait fixe + texte défilant
   ========================================================================== */

.cafe-staff-modal{
  align-items:center!important;
  justify-content:center!important;
  padding:28px!important;
}

.cafe-staff-modal-card{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(300px, 38%) minmax(0, 1fr)!important;
  align-items:center!important;

  width:min(1180px, calc(100vw - 56px))!important;
  height:min(720px, calc(100vh - 56px))!important;
  max-width:none!important;
  max-height:none!important;

  padding:38px 46px!important;
  overflow:hidden!important;
  border-radius:34px!important;
}

/* Colonne portrait : toujours fixe et parfaitement centrée. */
.cafe-staff-modal-portrait{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:18px 28px 18px 4px!important;
  overflow:hidden!important;
}

.cafe-staff-modal-portrait img{
  display:block!important;
  width:min(330px, 100%)!important;
  height:auto!important;
  aspect-ratio:1 / 1!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:50%!important;
  margin:0 auto!important;
  flex:0 0 auto!important;
}

.cafe-staff-modal-placeholder{
  width:min(330px, 100%)!important;
  aspect-ratio:1 / 1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0 auto!important;
  border-radius:50%!important;
}

/*
 * Colonne texte :
 * le header reste en haut et SEULEMENT le contenu de la bio peut défiler.
 */
.cafe-staff-modal-content{
  display:grid!important;
  grid-template-rows:auto auto auto minmax(0, 1fr)!important;
  align-self:stretch!important;
  min-width:0!important;
  min-height:0!important;
  height:100%!important;
  padding:10px 10px 10px 24px!important;
  overflow:hidden!important;
}

.cafe-staff-modal-content .cafe-kicker{
  align-self:start!important;
  justify-self:start!important;
}

.cafe-staff-modal-content h3{
  margin:10px 0 4px!important;
}

.cafe-staff-modal-content > strong{
  display:block!important;
  margin:0 0 18px!important;
}

/* La bio est la seule zone scrollable. */
.cafe-staff-modal-content > p{
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  scrollbar-width:thin!important;

  margin:0!important;
  padding:4px 18px 8px 0!important;

  white-space:pre-line!important;
  line-height:1.62!important;
}

/* Scrollbar WebKit discrète */
.cafe-staff-modal-content > p::-webkit-scrollbar{
  width:8px;
}

.cafe-staff-modal-content > p::-webkit-scrollbar-track{
  background:transparent;
}

.cafe-staff-modal-content > p::-webkit-scrollbar-thumb{
  border-radius:99px;
  background:rgba(255,255,255,.24);
}

/* Fermer toujours visible, indépendamment du défilement du texte. */
.cafe-staff-modal-close{
  position:absolute!important;
  top:18px!important;
  right:18px!important;
  z-index:4!important;
}

/* Grand écran : encore un peu plus confortable. */
@media(min-width:1500px){
  .cafe-staff-modal-card{
    width:min(1280px, calc(100vw - 80px))!important;
    height:min(760px, calc(100vh - 80px))!important;
    grid-template-columns:minmax(340px, 40%) minmax(0, 1fr)!important;
    padding:44px 54px!important;
  }

  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:min(370px, 100%)!important;
  }
}

/* Tablette / petit desktop : même principe, dimensions réduites. */
@media(max-width:1000px){
  .cafe-staff-modal-card{
    width:min(900px, calc(100vw - 36px))!important;
    height:min(680px, calc(100vh - 36px))!important;
    grid-template-columns:minmax(240px, 34%) minmax(0, 1fr)!important;
    padding:30px 34px!important;
  }

  .cafe-staff-modal-portrait{
    padding-right:20px!important;
  }

  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:min(270px, 100%)!important;
  }

  .cafe-staff-modal-content{
    padding-left:18px!important;
  }
}

/* Mobile : le site mobile est en construction, mais on garde un fallback propre. */
@media(max-width:720px){
  .cafe-staff-modal{
    padding:12px!important;
  }

  .cafe-staff-modal-card{
    display:flex!important;
    flex-direction:column!important;
    width:calc(100vw - 24px)!important;
    height:calc(100vh - 24px)!important;
    padding:48px 20px 22px!important;
  }

  .cafe-staff-modal-portrait{
    flex:0 0 auto!important;
    height:auto!important;
    padding:0 0 14px!important;
  }

  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:180px!important;
  }

  .cafe-staff-modal-content{
    width:100%!important;
    flex:1 1 auto!important;
    padding:0!important;
  }
}



/* ==========================================================================
   v0.19.12 — médaillon Staff à sa taille normale, centré à gauche
   ========================================================================== */

/*
 * On conserve le grand panneau et le scroll de la bio,
 * mais le médaillon reprend une taille proche de l'ancienne fiche.
 */
.cafe-staff-modal-portrait{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0 30px 0 0!important;
  overflow:visible!important;
}

.cafe-staff-modal-portrait img{
  width:260px!important;
  height:260px!important;
  max-width:260px!important;
  max-height:260px!important;
  aspect-ratio:1 / 1!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:50%!important;
  margin:auto!important;
  flex:0 0 260px!important;
}

.cafe-staff-modal-placeholder{
  width:260px!important;
  height:260px!important;
  max-width:260px!important;
  max-height:260px!important;
  aspect-ratio:1 / 1!important;
  margin:auto!important;
  flex:0 0 260px!important;
}

/* Même taille sur grands écrans : on ne grossit plus le portrait. */
@media(min-width:1500px){
  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:260px!important;
    height:260px!important;
    max-width:260px!important;
    max-height:260px!important;
    flex-basis:260px!important;
  }
}

/* Petit desktop : légère réduction pour garder les proportions. */
@media(max-width:1000px){
  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:220px!important;
    height:220px!important;
    max-width:220px!important;
    max-height:220px!important;
    flex-basis:220px!important;
  }
}

@media(max-width:720px){
  .cafe-staff-modal-portrait{
    padding:0 0 14px!important;
  }

  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:180px!important;
    height:180px!important;
    max-width:180px!important;
    max-height:180px!important;
    flex-basis:180px!important;
  }
}



/* ==========================================================================
   v0.19.13 — correction définitive du médaillon Staff
   ========================================================================== */

/*
 * Le conteneur gauche ne doit plus être lui-même un médaillon.
 * On supprime les anciens aspect-ratio, fond, bordure et ombre qui créaient
 * le gigantesque ovale derrière le vrai portrait.
 */
.cafe-staff-modal-portrait{
  aspect-ratio:auto!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;

  display:flex!important;
  align-items:center!important;
  justify-content:center!important;

  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;

  margin:0!important;
  padding:0 30px 0 0!important;
  overflow:visible!important;
}

/* Le SEUL médaillon visible est maintenant l'image elle-même. */
.cafe-staff-modal-portrait img{
  display:block!important;

  width:260px!important;
  height:260px!important;
  min-width:260px!important;
  min-height:260px!important;
  max-width:260px!important;
  max-height:260px!important;

  aspect-ratio:1 / 1!important;
  object-fit:cover!important;
  object-position:center!important;

  margin:0!important;
  padding:0!important;

  border:8px solid rgba(255,255,255,.22)!important;
  border-radius:50%!important;
  background:transparent!important;
  box-shadow:0 12px 30px rgba(0,0,0,.20)!important;

  flex:0 0 260px!important;
}

/* Aucun décor parasite derrière le portrait. */
.cafe-staff-modal-placeholder{
  width:260px!important;
  height:260px!important;
  min-width:260px!important;
  min-height:260px!important;
  max-width:260px!important;
  max-height:260px!important;

  aspect-ratio:1 / 1!important;
  margin:0!important;
  padding:0!important;

  border:8px solid rgba(255,255,255,.22)!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.06)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.20)!important;

  flex:0 0 260px!important;
}

/* On garde exactement la même taille de médaillon sur grand écran. */
@media(min-width:1500px){
  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:260px!important;
    height:260px!important;
    min-width:260px!important;
    min-height:260px!important;
    max-width:260px!important;
    max-height:260px!important;
    flex-basis:260px!important;
  }
}

@media(max-width:1000px){
  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:220px!important;
    height:220px!important;
    min-width:220px!important;
    min-height:220px!important;
    max-width:220px!important;
    max-height:220px!important;
    flex-basis:220px!important;
  }
}

@media(max-width:720px){
  .cafe-staff-modal-portrait{
    padding:0 0 14px!important;
  }

  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:180px!important;
    height:180px!important;
    min-width:180px!important;
    min-height:180px!important;
    max-width:180px!important;
    max-height:180px!important;
    flex-basis:180px!important;
  }
}



/* ==========================================================================
   v0.19.14 — suppression du médaillon décoratif à patounes
   ========================================================================== */

/* La colonne gauche est purement structurelle : aucun décor. */
.cafe-staff-modal-portrait,
.cafe-staff-modal-portrait::before,
.cafe-staff-modal-portrait::after{
  content:none!important;
  background:none!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
  outline:0!important;
}

/* Certains anciens styles pouvaient dessiner les patounes via des descendants. */
.cafe-staff-modal-portrait > span:not(.cafe-staff-modal-placeholder),
.cafe-staff-modal-portrait .mental-paw{
  display:none!important;
}

/* Centrage strict du seul médaillon avatar dans la colonne gauche. */
.cafe-staff-modal-portrait{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  justify-self:stretch!important;
  align-self:stretch!important;

  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;

  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}

/* Le portrait est le seul cercle visible. */
.cafe-staff-modal-portrait img{
  display:block!important;
  position:static!important;

  width:260px!important;
  height:260px!important;
  min-width:260px!important;
  min-height:260px!important;
  max-width:260px!important;
  max-height:260px!important;

  margin:auto!important;
  padding:0!important;

  aspect-ratio:1 / 1!important;
  object-fit:cover!important;
  object-position:center!important;

  border:8px solid rgba(255,255,255,.22)!important;
  border-radius:50%!important;
  background:transparent!important;
  box-shadow:0 12px 30px rgba(0,0,0,.20)!important;

  transform:none!important;
  flex:0 0 260px!important;
}

/* Aucun cadre décoratif supplémentaire autour du placeholder non plus. */
.cafe-staff-modal-placeholder{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;

  width:260px!important;
  height:260px!important;
  min-width:260px!important;
  min-height:260px!important;
  max-width:260px!important;
  max-height:260px!important;

  margin:auto!important;
  padding:0!important;

  border:8px solid rgba(255,255,255,.22)!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.06)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.20)!important;

  flex:0 0 260px!important;
}

/* Même centrage quelle que soit la largeur du desktop. */
@media(min-width:1500px){
  .cafe-staff-modal-portrait{
    padding:0!important;
  }

  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:260px!important;
    height:260px!important;
    min-width:260px!important;
    min-height:260px!important;
    max-width:260px!important;
    max-height:260px!important;
    flex-basis:260px!important;
  }
}

@media(max-width:1000px){
  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:220px!important;
    height:220px!important;
    min-width:220px!important;
    min-height:220px!important;
    max-width:220px!important;
    max-height:220px!important;
    flex-basis:220px!important;
  }
}

@media(max-width:720px){
  .cafe-staff-modal-portrait img,
  .cafe-staff-modal-placeholder{
    width:180px!important;
    height:180px!important;
    min-width:180px!important;
    min-height:180px!important;
    max-width:180px!important;
    max-height:180px!important;
    flex-basis:180px!important;
  }
}



/* ==========================================================================
   v0.19.15 — suppression réelle du placeholder à patounes
   ========================================================================== */

/* Le placeholder a été retiré du HTML ; cette règle neutralise tout cache ancien. */
.cafe-staff-modal-placeholder,
#cafe-staff-modal-placeholder{
  display:none!important;
  visibility:hidden!important;
}

/* La colonne gauche ne contient désormais que l'avatar. */
.cafe-staff-modal-portrait{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;

  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;

  aspect-ratio:auto!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  background-image:none!important;
  box-shadow:none!important;
  overflow:visible!important;
}

.cafe-staff-modal-portrait img:not([hidden]){
  display:block!important;
  position:static!important;

  width:260px!important;
  height:260px!important;
  min-width:260px!important;
  min-height:260px!important;
  max-width:260px!important;
  max-height:260px!important;

  margin:auto!important;
  padding:0!important;
  flex:0 0 260px!important;

  object-fit:cover!important;
  object-position:center!important;
  border-radius:50%!important;
}

/* L'attribut HTML hidden doit toujours gagner. */
.cafe-staff-modal-portrait img[hidden]{
  display:none!important;
}

@media(max-width:1000px){
  .cafe-staff-modal-portrait img:not([hidden]){
    width:220px!important;
    height:220px!important;
    min-width:220px!important;
    min-height:220px!important;
    max-width:220px!important;
    max-height:220px!important;
    flex-basis:220px!important;
  }
}

@media(max-width:720px){
  .cafe-staff-modal-portrait img:not([hidden]){
    width:180px!important;
    height:180px!important;
    min-width:180px!important;
    min-height:180px!important;
    max-width:180px!important;
    max-height:180px!important;
    flex-basis:180px!important;
  }
}



/* ==========================================================================
   v0.19.16 — fiche Staff réduite d'environ 35 %
   ========================================================================== */

.cafe-staff-modal-card{
  width:min(780px, calc(100vw - 56px))!important;
  height:min(470px, calc(100vh - 56px))!important;
  min-height:0!important;
  grid-template-columns:280px minmax(0, 1fr)!important;
  padding:26px 30px!important;
  border-radius:30px!important;
}

.cafe-staff-modal-portrait img:not([hidden]){
  width:220px!important;
  height:220px!important;
  min-width:220px!important;
  min-height:220px!important;
  max-width:220px!important;
  max-height:220px!important;
  flex:0 0 220px!important;
}

.cafe-staff-modal-content{
  padding:6px 8px 6px 18px!important;
}

.cafe-staff-modal-content h3{
  margin:8px 0 2px!important;
}

.cafe-staff-modal-content > strong{
  margin-bottom:12px!important;
}

.cafe-staff-modal-content > p{
  padding-right:12px!important;
  line-height:1.55!important;
}

.cafe-staff-modal-close{
  top:14px!important;
  right:14px!important;
}

@media(min-width:1500px){
  .cafe-staff-modal-card{
    width:min(820px, calc(100vw - 80px))!important;
    height:min(500px, calc(100vh - 80px))!important;
    grid-template-columns:290px minmax(0, 1fr)!important;
    padding:28px 34px!important;
  }

  .cafe-staff-modal-portrait img:not([hidden]){
    width:230px!important;
    height:230px!important;
    min-width:230px!important;
    min-height:230px!important;
    max-width:230px!important;
    max-height:230px!important;
    flex-basis:230px!important;
  }
}

@media(max-width:1000px){
  .cafe-staff-modal-card{
    width:min(720px, calc(100vw - 36px))!important;
    height:min(450px, calc(100vh - 36px))!important;
    grid-template-columns:240px minmax(0, 1fr)!important;
    padding:24px 26px!important;
  }

  .cafe-staff-modal-portrait img:not([hidden]){
    width:200px!important;
    height:200px!important;
    min-width:200px!important;
    min-height:200px!important;
    max-width:200px!important;
    max-height:200px!important;
    flex-basis:200px!important;
  }
}



/* ==========================================================================
   v0.20.0 — téléphone & tablette réactivés / responsive global
   ========================================================================== */

/* L'ancien écran « version mobile en construction » est définitivement éteint. */
.cafe-mobile-css-hold,
.cafe-mobile-hold{
  display:none!important;
}

/* Base fluide sur toutes les tailles. */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

body{
  min-width:0;
}

img,
video,
audio,
iframe{
  max-width:100%;
}

.container{
  width:min(1180px, calc(100% - clamp(20px, 4vw, 32px)))!important;
}

main,
section,
article,
aside,
.cafe-panel,
.card{
  min-width:0;
}

/* Sur mobile, le fond fixe consomme inutilement des ressources. */
@media(max-width:1000px), (hover:none), (pointer:coarse){
  body{
    background-attachment:scroll!important;
  }
}

/* --------------------------------------------------------------------------
   Staff accueil — desktop
   -------------------------------------------------------------------------- */

.staff-carousel-stage{
  position:relative;
}

.staff-mobile-arrow{
  display:none;
}

/* --------------------------------------------------------------------------
   Staff accueil — téléphone/tablette : un portrait, flèches + swipe
   -------------------------------------------------------------------------- */

@media(max-width:1000px){
  .home-actors-section{
    padding-top:26px;
    padding-bottom:26px;
  }

  .staff-carousel{
    position:relative;
    width:100%;
    padding:0 0 8px!important;
  }

  .staff-carousel-stage{
    display:grid;
    grid-template-columns:48px minmax(0,1fr) 48px;
    align-items:center;
    gap:8px;
    width:min(390px,100%);
    margin-inline:auto;
    touch-action:pan-y;
  }

  .staff-mobile-arrow{
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    padding:0;
    border:1px solid rgba(255,255,255,.82);
    border-radius:50%;
    background:rgba(255,255,255,.78);
    color:#744735;
    box-shadow:0 8px 20px rgba(72,49,61,.15);
    font-size:2.25rem;
    font-weight:700;
    line-height:1;
    backdrop-filter:blur(10px);
    -webkit-tap-highlight-color:transparent;
  }

  .staff-mobile-arrow:active{
    transform:scale(.94);
  }

  .staff-carousel-pages{
    display:grid!important;
    place-items:center!important;
    min-height:292px!important;
    width:100%;
  }

  /*
   * Les deux pages PHP deviennent de simples wrappers :
   * JS choisit ensuite une seule carte parmi les 8.
   */
  .staff-carousel-page,
  .staff-carousel-page[hidden],
  .staff-carousel .staff-staggered{
    display:contents!important;
  }

  .staff-carousel .staff-staggered-card[hidden]{
    display:none!important;
  }

  .staff-carousel .staff-staggered-card:not([hidden]){
    display:block!important;
    width:min(222px,68vw)!important;
    max-width:222px!important;
    margin:0 auto!important;
    transform:none!important;
  }

  .staff-carousel .staff-staggered-card:not([hidden]):hover,
  .staff-carousel .staff-staggered-card:not([hidden]):focus-visible{
    transform:translateY(-4px) scale(1.015)!important;
  }

  .staff-carousel .actor-portrait{
    width:min(172px,53vw)!important;
    max-width:172px!important;
    margin-inline:auto!important;
  }

  .staff-carousel-dots{
    display:none!important;
  }
}

@media(max-width:430px){
  .staff-carousel-stage{
    grid-template-columns:42px minmax(0,1fr) 42px;
    gap:4px;
  }

  .staff-mobile-arrow{
    width:40px;
    height:40px;
    font-size:1.9rem;
  }

  .staff-carousel-pages{
    min-height:270px!important;
  }

  .staff-carousel .staff-staggered-card:not([hidden]){
    width:min(205px,70vw)!important;
  }

  .staff-carousel .actor-portrait{
    width:min(158px,52vw)!important;
  }
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

@media(max-width:900px){
  .site-header{
    backdrop-filter:blur(14px);
  }

  .site-header .nav-wrap{
    min-height:68px!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
  }

  .brand-logo-link{
    width:min(190px,48vw)!important;
    max-width:48vw!important;
  }

  .header-cafe-logo{
    max-height:55px!important;
  }

  .site-header .main-nav{
    left:8px!important;
    right:8px!important;
    width:auto!important;
    max-height:calc(100dvh - 92px)!important;
    overscroll-behavior:contain;
  }
}

@media(max-width:520px){
  .site-header .nav-wrap{
    padding-left:38px!important;
    gap:7px!important;
  }

  .brand-logo-link{
    width:min(162px,48vw)!important;
  }

  .cafe-mobile-menu-toggle{
    width:42px;
    height:42px;
  }
}

/* --------------------------------------------------------------------------
   Accueil + sections générales
   -------------------------------------------------------------------------- */

@media(max-width:900px){
  .section{
    padding:30px 0!important;
  }

  .section-head{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:8px!important;
    margin-bottom:16px!important;
  }

  .section h2{
    font-size:clamp(1.9rem,8vw,2.8rem)!important;
  }

  .section-lead{
    max-width:100%!important;
  }

  .hero{
    padding:18px 0 10px!important;
  }

  .hero-banner{
    border-radius:24px!important;
  }

  .hero-actions{
    gap:8px!important;
    padding-top:12px!important;
  }

  .home-whatsnew-layout{
    grid-template-columns:1fr!important;
  }

  .home-news-sidebar{
    position:static!important;
  }

  .cafe-account-grid{
    grid-template-columns:1fr!important;
  }

  .cafe-account-actions{
    width:100%;
  }

  .cafe-forum-toolbar{
    align-items:stretch!important;
    flex-direction:column!important;
  }

  .footer-grid{
    flex-direction:column!important;
    align-items:flex-start!important;
  }
}

@media(max-width:620px){
  .container{
    width:calc(100% - 18px)!important;
  }

  .section{
    padding:24px 0!important;
  }

  .page-shell{
    padding:28px 0!important;
  }

  .page-shell article,
  .cafe-panel,
  .cafe-forum,
  .cafe-topic-page{
    padding:18px!important;
    border-radius:22px!important;
  }

  .hero-banner{
    border-radius:18px!important;
  }

  .hero-actions,
  .actions{
    align-items:stretch;
    flex-direction:column;
  }

  .hero-actions .btn,
  .actions .btn{
    width:100%;
  }

  .cafe-data{
    grid-template-columns:1fr!important;
    gap:2px!important;
  }

  .cafe-data dd{
    margin-bottom:10px!important;
  }

  .cafe-account-section-head,
  .cafe-admin-member-head,
  .cafe-complaint-archives-head{
    flex-direction:column!important;
  }

  .footer-links{
    gap:10px!important;
  }
}

/* --------------------------------------------------------------------------
   Grilles de contenus : aucune largeur d'écran ne doit déborder
   -------------------------------------------------------------------------- */

@media(max-width:1000px){
  .cafe-event-grid,
  .cafe-event-showcase-grid,
  .cafe-bd-grid,
  .cafe-album-grid,
  .cafe-album-shelf,
  .cafe-art-grid,
  .cafe-cine-grid,
  .home-feed-grid,
  .home-mixed-feed-grid,
  .home-whatsnew-grid,
  .home-news-sidebar-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:560px){
  .cafe-event-grid,
  .cafe-event-showcase-grid,
  .cafe-event-past-grid,
  .cafe-bd-grid,
  .cafe-album-grid,
  .cafe-album-shelf,
  .cafe-art-grid,
  .cafe-cine-grid,
  .home-feed-grid,
  .home-mixed-feed-grid,
  .home-whatsnew-grid,
  .home-news-sidebar-list{
    grid-template-columns:1fr!important;
  }

  .cafe-content-card,
  .cafe-event-showcase-card,
  .cafe-bd-library-card,
  .cafe-album-tile,
  .cafe-cine-card{
    width:100%!important;
    max-width:460px!important;
    margin-inline:auto!important;
  }
}

/* --------------------------------------------------------------------------
   Fiche Staff responsive
   -------------------------------------------------------------------------- */

@media(max-width:700px){
  .cafe-staff-modal{
    padding:10px!important;
  }

  .cafe-staff-modal-card{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    width:calc(100vw - 20px)!important;
    height:min(680px,calc(100dvh - 20px))!important;
    padding:48px 18px 18px!important;
    border-radius:24px!important;
  }

  .cafe-staff-modal-portrait{
    height:150px!important;
    padding:0!important;
  }

  .cafe-staff-modal-portrait img:not([hidden]){
    width:138px!important;
    height:138px!important;
    min-width:138px!important;
    min-height:138px!important;
    max-width:138px!important;
    max-height:138px!important;
    flex-basis:138px!important;
  }

  .cafe-staff-modal-content{
    min-height:0!important;
    padding:8px 2px 0!important;
    text-align:left!important;
  }

  .cafe-staff-modal-content h3{
    font-size:clamp(2rem,11vw,3rem)!important;
  }

  .cafe-staff-modal-content > p{
    overflow-y:auto!important;
    padding-right:8px!important;
  }
}

/* --------------------------------------------------------------------------
   Lecteurs BD / musique et popups
   -------------------------------------------------------------------------- */

@media(max-width:760px){
  .cafe-bd-reader,
  .cafe-music-player,
  .cafe-chat-modal{
    padding:8px!important;
  }

  .cafe-music-player-panel,
  .cafe-chat-panel{
    width:calc(100vw - 16px)!important;
    max-width:none!important;
    max-height:calc(100dvh - 16px)!important;
    border-radius:22px!important;
  }

  .cafe-music-player-layout{
    grid-template-columns:1fr!important;
    overflow-y:auto!important;
  }

  .cafe-bd-reader-stage{
    min-width:0!important;
  }
}

/* --------------------------------------------------------------------------
   Tchat + Bureau des plaintes de nouveau accessibles au tactile
   -------------------------------------------------------------------------- */

@media(max-width:1000px){
  .cafe-chat-corner{
    display:block!important;
    width:108px!important;
    max-width:108px!important;
  }

  .cafe-chat-launcher,
  .cafe-chat-launcher img{
    width:108px!important;
    max-width:108px!important;
  }

  .cafe-complaint-corner{
    right:7px!important;
    bottom:7px!important;
  }

  .cafe-complaint-launcher{
    width:62px!important;
  }
}

@media(max-width:480px){
  .cafe-chat-corner{
    width:92px!important;
    max-width:92px!important;
  }

  .cafe-chat-launcher,
  .cafe-chat-launcher img{
    width:92px!important;
    max-width:92px!important;
  }

  .cafe-complaint-launcher{
    width:54px!important;
  }

  .cafe-chat-head{
    padding:16px 16px 10px!important;
  }

  .cafe-chat-statusbar{
    margin-inline:14px!important;
  }
}

/* --------------------------------------------------------------------------
   Formulaires tactiles
   -------------------------------------------------------------------------- */

@media(max-width:620px){
  input,
  select,
  textarea,
  button{
    max-width:100%;
  }

  input,
  select,
  textarea{
    font-size:16px!important;
  }

  .cafe-form-three,
  .cafe-form-two,
  .cafe-edit-image-row{
    grid-template-columns:1fr!important;
  }
}



/* ==========================================================================
   v0.20.1 — sécurité anti-cache de l'ancien blocage mobile
   ========================================================================== */

@media(max-width:1100px) and (pointer:coarse){
  body:not(.wp-admin) > *{
    visibility:visible!important;
  }

  .cafe-mobile-css-hold,
  .cafe-mobile-hold{
    display:none!important;
    visibility:hidden!important;
  }

  #wpadminbar{
    visibility:visible!important;
  }
}

@media(max-width:760px){
  body:not(.wp-admin) > *{
    visibility:visible!important;
  }
}



/* ==========================================================================
   v0.20.2 — Tchat GIF/autocollants + forum en un seul bloc
   ========================================================================== */

/* --- Tchat : outils média, sans upload de fichier --- */

.cafe-chat-tools{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
}

.cafe-chat-tools > small{
  margin-left:auto;
  color:#988990;
  font-size:.63rem;
}

.cafe-chat-tool-button{
  min-height:34px;
  padding:6px 11px;
  border:1px solid rgba(216,42,132,.17);
  border-radius:999px;
  background:rgba(255,244,249,.94);
  color:#8b5b43;
  font:inherit;
  font-size:.72rem;
  font-weight:900;
  cursor:pointer;
}

.cafe-chat-tool-button:hover,
.cafe-chat-tool-button:focus-visible,
.cafe-chat-tool-button.is-active{
  background:#ffe5f1;
  border-color:rgba(216,42,132,.35);
}

.cafe-chat-tool-panel[hidden]{
  display:none!important;
}

.cafe-chat-tool-panel{
  padding:10px;
  border:1px solid rgba(111,83,98,.10);
  border-radius:16px;
  background:rgba(255,255,255,.74);
}

.cafe-chat-tool-panel > label{
  display:block;
  margin-bottom:7px;
  color:#5b4d54;
  font-size:.72rem;
  font-weight:900;
}

.cafe-chat-tool-panel > small{
  display:block;
  margin-top:7px;
  color:#988990;
  font-size:.61rem;
  line-height:1.35;
}

.cafe-chat-gif-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
}

.cafe-chat-gif-row input{
  width:100%;
  min-width:0;
  min-height:40px;
  padding:9px 11px;
  border:1px solid rgba(104,80,94,.15);
  border-radius:12px;
  background:#fff;
  color:#443a40;
  font:inherit;
  font-size:.78rem;
}

.cafe-chat-sticker-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:7px;
}

.cafe-chat-sticker-choice{
  display:grid;
  place-items:center;
  gap:2px;
  min-height:68px;
  padding:6px 4px;
  border:1px solid rgba(106,79,94,.10);
  border-radius:13px;
  background:rgba(255,255,255,.92);
  color:#584b52;
  cursor:pointer;
}

.cafe-chat-sticker-choice:hover,
.cafe-chat-sticker-choice:focus-visible{
  transform:translateY(-2px);
  border-color:rgba(216,42,132,.28);
  background:#fff1f7;
}

.cafe-chat-sticker-choice > span{
  font-size:1.75rem;
  line-height:1;
}

.cafe-chat-sticker-choice > small{
  max-width:100%;
  overflow:hidden;
  color:#86777e;
  font-size:.52rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cafe-chat-message.is-gif .cafe-chat-message-body,
.cafe-chat-message.is-sticker .cafe-chat-message-body{
  padding-bottom:10px;
}

.cafe-chat-gif{
  display:block;
  width:auto;
  max-width:min(260px,100%);
  max-height:250px;
  margin-top:5px;
  border-radius:14px;
  object-fit:contain;
}

.cafe-chat-sticker{
  display:grid;
  justify-items:center;
  width:120px;
  max-width:100%;
  margin-top:4px;
  padding:8px 10px 7px;
  border-radius:18px;
  background:rgba(255,255,255,.50);
}

.cafe-chat-sticker-emoji{
  font-size:3.25rem;
  line-height:1;
}

.cafe-chat-sticker small{
  margin-top:4px;
  color:#74656c;
  font-size:.62rem;
  font-weight:850;
}

.cafe-chat-media-unavailable{
  font-style:italic;
  color:#918188!important;
}

/* --- Forum : un fil continu façon forum classique --- */

.cafe-forum-thread-block{
  margin-top:22px;
  overflow:hidden;
  border:1px solid rgba(81,70,79,.09);
  border-radius:20px;
  background:rgba(255,255,255,.76);
  box-shadow:0 8px 24px rgba(81,70,79,.045);
}

.cafe-forum-thread-block .cafe-topic-message{
  margin:0!important;
  padding:22px 22px 24px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.cafe-forum-thread-block .cafe-replies{
  margin:0!important;
  padding:0!important;
  border-top:1px solid rgba(81,70,79,.09)!important;
}

.cafe-forum-thread-block .cafe-replies > h2{
  margin:0!important;
  padding:12px 20px!important;
  border-bottom:1px solid rgba(81,70,79,.07);
  background:rgba(247,242,246,.58);
  color:#744735!important;
  font-size:.92rem!important;
}

.cafe-forum-thread-block .cafe-comment-list{
  display:block!important;
  margin:0!important;
  padding:0!important;
  gap:0!important;
  list-style:none!important;
}

.cafe-forum-thread-block .cafe-comment-list .comment{
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.cafe-forum-thread-block .cafe-comment-list > .comment + .comment{
  border-top:1px solid rgba(81,70,79,.085)!important;
}

.cafe-forum-thread-block .cafe-comment-list .comment-body{
  margin:0!important;
  padding:17px 20px 18px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.cafe-forum-thread-block .cafe-comment-list .children{
  margin:0!important;
  padding:0 0 0 24px!important;
  border-top:1px solid rgba(81,70,79,.07);
  border-left:3px solid rgba(216,42,132,.07);
  list-style:none!important;
}

.cafe-forum-thread-block .cafe-comment-list .children .comment + .comment{
  border-top:1px solid rgba(81,70,79,.07)!important;
}

.cafe-forum-thread-block .cafe-reply-box{
  margin:0!important;
  padding:18px 20px!important;
  border-top:1px solid rgba(81,70,79,.09);
  border-radius:0!important;
  background:rgba(221,238,255,.25)!important;
}

.cafe-forum-thread-block .cafe-alert{
  margin:0!important;
  border-radius:0!important;
  border-top:1px solid rgba(81,70,79,.08);
}

@media(max-width:700px){
  .cafe-chat-sticker-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  .cafe-chat-gif-row{
    grid-template-columns:1fr;
  }

  .cafe-chat-tools > small{
    width:100%;
    margin-left:0;
  }

  .cafe-chat-gif{
    max-width:min(230px,100%);
  }

  .cafe-forum-thread-block{
    border-radius:16px;
  }

  .cafe-forum-thread-block .cafe-topic-message,
  .cafe-forum-thread-block .cafe-comment-list .comment-body,
  .cafe-forum-thread-block .cafe-reply-box{
    padding-left:15px!important;
    padding-right:15px!important;
  }

  .cafe-forum-thread-block .cafe-comment-list .children{
    padding-left:12px!important;
  }
}



/* ==========================================================================
   v0.20.3 — notification tchat + lecteur BD renforcé
   ========================================================================== */

/* Petit X dans le panneau GIF. */
.cafe-chat-tool-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:7px;
}

.cafe-chat-tool-panel-head > label{
  margin:0!important;
}

.cafe-chat-tool-close{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:28px;
  height:28px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(102,76,90,.09);
  color:#806c76;
  font:inherit;
  font-size:1.15rem;
  font-weight:900;
  cursor:pointer;
}

.cafe-chat-tool-close:hover,
.cafe-chat-tool-close:focus-visible{
  background:#ffe3f0;
  color:#744735;
}

/* Badge de nouveaux messages directement sur Axel. */
.cafe-chat-launcher{
  overflow:visible!important;
}

.cafe-chat-unread-badge{
  position:absolute;
  top:8%;
  right:5%;
  z-index:4;

  display:grid;
  place-items:center;
  min-width:27px;
  height:27px;
  padding:0 7px;

  border:3px solid #fff;
  border-radius:999px;
  background:#e02b8a;
  color:#fff;

  font-size:.72rem;
  font-weight:950;
  line-height:1;

  box-shadow:0 5px 14px rgba(128,28,80,.34);
  animation:cafeChatUnreadPop .28s cubic-bezier(.2,.85,.25,1.2);
}

.cafe-chat-unread-badge[hidden]{
  display:none!important;
}

@keyframes cafeChatUnreadPop{
  from{opacity:0;transform:scale(.5);}
  to{opacity:1;transform:scale(1);}
}

@media(max-width:1000px){
  .cafe-chat-unread-badge{
    min-width:22px;
    height:22px;
    padding-inline:5px;
    border-width:2px;
    font-size:.61rem;
  }
}

/* Lecteur BD : retour visuel pendant le préchargement. */
.cafe-bd-reader-image,
#cafe-bd-reader-image{
  transition:opacity .16s ease;
}

#cafe-bd-reader-image.is-bd-loading{
  opacity:.28;
}

#cafe-bd-reader-image.is-bd-load-error{
  opacity:0;
}

.cafe-bd-reader-nav[aria-busy="true"]{
  cursor:wait;
}

/* Pas d'animation inutile si l'utilisateur a choisi de les réduire. */
@media(prefers-reduced-motion:reduce){
  .cafe-chat-unread-badge{
    animation:none;
  }
}



/* ==========================================================================
   v0.20.4 — vraie passe mobile / tablette
   Ciblée notamment pour les écrans étroits type Galaxy Fold fermé.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Base mobile : éviter les débordements et laisser de la place aux widgets.
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  *,
  *::before,
  *::after{
    box-sizing:border-box;
  }

  html,
  body{
    max-width:100%;
    overflow-x:hidden!important;
  }

  body{
    color:#493f45;
  }

  main{
    min-width:0;
    padding-bottom:92px;
  }

  .container,
  .page-shell > .container,
  .cafe-artwork-page-shell > .container{
    width:calc(100% - 14px)!important;
    max-width:none!important;
    margin-inline:auto!important;
  }

  .page-shell{
    padding:18px 0!important;
  }

  .page-shell > .container > article{
    min-width:0!important;
  }

  h1,
  h2,
  h3,
  p,
  li,
  a,
  strong,
  small,
  span{
    overflow-wrap:anywhere;
  }

  .btn{
    max-width:100%;
    white-space:normal!important;
    text-align:center;
  }
}

/* --------------------------------------------------------------------------
   FICHE ÉVÉNEMENT
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  body.single-cafe_event .page-shell{
    padding-top:10px!important;
  }

  /* Plus spécifique que .page-shell article : la fiche reste bien sombre. */
  body.single-cafe_event .page-shell article.cafe-event-single{
    overflow:hidden!important;
    padding:0!important;
    border-radius:22px!important;
    background:#302b2e!important;
    color:#f7f1f4!important;
    box-shadow:0 12px 30px rgba(64,48,57,.14)!important;
  }

  body.single-cafe_event .cafe-event-single-layout{
    display:block!important;
    width:100%!important;
  }

  /*
   * Correction essentielle :
   * aucun ratio 4/3 sur l'affiche verticale.
   * Le conteneur prend désormais exactement la hauteur de l'image.
   */
  body.single-cafe_event .cafe-event-single-poster{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:auto!important;
    overflow:hidden!important;
    background:#211e20!important;
  }

  body.single-cafe_event .cafe-event-single-poster img{
    position:static!important;
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    margin:0!important;
  }

  body.single-cafe_event .cafe-event-single-info{
    position:relative!important;
    z-index:2!important;
    width:100%!important;
    padding:18px 16px 20px!important;
    background:#302b2e!important;
    color:#f7f1f4!important;
  }

  body.single-cafe_event .cafe-back{
    display:inline-flex!important;
    margin-bottom:14px!important;
    color:#c69778!important;
    font-size:.86rem!important;
    font-weight:850!important;
  }

  body.single-cafe_event .cafe-event-single-info .meta{
    color:#b98568!important;
    font-size:.82rem!important;
    font-weight:900!important;
  }

  body.single-cafe_event .cafe-event-single-info h1{
    margin:8px 0 16px!important;
    color:#fff!important;
    font-size:clamp(2rem,10vw,2.65rem)!important;
    line-height:1.02!important;
  }

  body.single-cafe_event .cafe-event-single-facts{
    gap:8px!important;
    margin:14px 0 18px!important;
  }

  body.single-cafe_event .cafe-event-single-facts span{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    padding:9px 11px!important;
    border-radius:13px!important;
    background:rgba(255,255,255,.09)!important;
    color:#fff!important;
    font-size:.88rem!important;
    line-height:1.3!important;
  }

  body.single-cafe_event .cafe-event-single-content,
  body.single-cafe_event .cafe-event-single-content p,
  body.single-cafe_event .cafe-event-single-content li{
    color:#eee7eb!important;
    font-size:.96rem!important;
    line-height:1.58!important;
  }

  body.single-cafe_event .cafe-event-single-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
    margin-top:18px!important;
  }

  body.single-cafe_event .cafe-event-single-actions .btn{
    width:100%!important;
    min-width:0!important;
  }

  body.single-cafe_event .cafe-event-interest{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    margin-top:18px!important;
    padding:14px!important;
    border:1px solid rgba(255,255,255,.11)!important;
    border-radius:17px!important;
    background:rgba(255,255,255,.07)!important;
    color:#f7f1f4!important;
  }

  body.single-cafe_event .cafe-event-interest h3,
  body.single-cafe_event .cafe-event-interest p,
  body.single-cafe_event .cafe-event-interest strong,
  body.single-cafe_event .cafe-event-interest span{
    color:#f7f1f4!important;
  }

  body.single-cafe_event .cafe-event-interest-side{
    width:100%!important;
    min-width:0!important;
    justify-items:stretch!important;
  }

  body.single-cafe_event .cafe-event-interest-side form,
  body.single-cafe_event .cafe-event-interest-side .btn{
    width:100%!important;
    min-width:0!important;
  }
}

/* --------------------------------------------------------------------------
   CINÉCHAPI — fiche film
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  body.single-cafe_cine .page-shell article.cafe-cine-single{
    padding:15px!important;
    border-radius:22px!important;
    background:#302b2e!important;
    color:#f7f1f4!important;
    box-shadow:0 12px 30px rgba(64,48,57,.14)!important;
  }

  body.single-cafe_cine .cafe-back{
    display:inline-flex!important;
    margin-bottom:14px!important;
    color:#c69778!important;
    font-size:.86rem!important;
    font-weight:850!important;
  }

  body.single-cafe_cine .cafe-cine-single-layout{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:18px!important;
  }

  body.single-cafe_cine .cafe-cine-single-poster{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    border-radius:17px!important;
  }

  body.single-cafe_cine .cafe-cine-single-poster img{
    display:block!important;
    width:100%!important;
    height:auto!important;
  }

  body.single-cafe_cine .cafe-cine-single-info{
    min-width:0!important;
  }

  body.single-cafe_cine .cafe-cine-single-info .cafe-kicker{
    color:#8c3a66!important;
    background:#f4cedf!important;
  }

  body.single-cafe_cine .cafe-cine-single-info h1{
    margin:12px 0 16px!important;
    color:#fff!important;
    font-size:clamp(2rem,10vw,2.65rem)!important;
    line-height:1.04!important;
  }

  body.single-cafe_cine .cafe-cine-meta{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
  }

  body.single-cafe_cine .cafe-cine-meta span{
    width:100%!important;
    padding:8px 10px!important;
    border-radius:12px!important;
    background:rgba(255,255,255,.09)!important;
    color:#fff!important;
  }

  body.single-cafe_cine .cafe-cine-single-content,
  body.single-cafe_cine .cafe-cine-single-content p,
  body.single-cafe_cine .cafe-cine-single-content li{
    color:#eee7eb!important;
    font-size:.96rem!important;
    line-height:1.58!important;
  }

  /* Le bloc Staff reste volontairement clair et lisible sous la fiche sombre. */
  body.single-cafe_cine .cafe-publication-staff-tools{
    margin:18px 0 4px!important;
    padding:14px!important;
    background:#fff8fb!important;
  }

  body.single-cafe_cine .cafe-publication-staff-tools-copy strong{
    color:#493d44!important;
  }

  body.single-cafe_cine .cafe-publication-staff-tools-copy small{
    color:#756970!important;
  }
}

/* --------------------------------------------------------------------------
   ARTWORK / GALERIE
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  .cafe-artwork-page-shell{
    padding:18px 0!important;
  }

  .cafe-artwork-page-shell > .container{
    padding:18px!important;
    border-radius:22px!important;
    background:#403932!important;
    color:#fff!important;
  }

  .cafe-artwork-page-shell .cafe-public-head{
    margin-bottom:18px!important;
  }

  .cafe-artwork-page-shell .cafe-public-head h1,
  .cafe-artwork-page-shell .cafe-public-head h2{
    color:#fff!important;
    font-size:clamp(2rem,10vw,2.7rem)!important;
    line-height:1.03!important;
  }

  /* Corrige le texte noir invisible sur le panneau brun. */
  .cafe-artwork-page-shell .cafe-public-head > p,
  body:not(.cafe-dark-page) .cafe-artwork-page-shell .cafe-public-head > p{
    color:#eadfe4!important;
    opacity:1!important;
    font-size:.94rem!important;
    line-height:1.52!important;
  }

  .cafe-artwork-page-shell .cafe-art-grid{
    grid-template-columns:1fr!important;
    gap:16px!important;
  }

  .cafe-artwork-page-shell .cafe-art-card-v2{
    width:100%!important;
    max-width:none!important;
    overflow:hidden!important;
    border-radius:18px!important;
    background:#fff!important;
    color:#463c42!important;
  }

  .cafe-artwork-page-shell .cafe-art-card-body{
    padding:14px!important;
    color:#463c42!important;
  }

  .cafe-artwork-page-shell .cafe-art-card-body h3,
  .cafe-artwork-page-shell .cafe-art-card-body p,
  .cafe-artwork-page-shell .cafe-art-card-body strong{
    color:#463c42!important;
  }

  .cafe-artwork-page-shell .cafe-art-card-buttons{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }

  .cafe-artwork-page-shell .cafe-art-card-buttons .btn{
    width:100%!important;
  }

  body.single-cafe_artwork .page-shell article.cafe-artwork-single{
    padding:15px!important;
    border-radius:22px!important;
    background:#302b2e!important;
    color:#f7f1f4!important;
  }

  body.single-cafe_artwork .cafe-artwork-back,
  body.single-cafe_artwork .meta{
    color:#b98568!important;
  }

  body.single-cafe_artwork .cafe-artwork-single h1{
    color:#fff!important;
    font-size:clamp(2rem,10vw,2.7rem)!important;
  }

  body.single-cafe_artwork .cafe-artwork-single-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }

  body.single-cafe_artwork .cafe-artwork-single-actions .btn{
    width:100%!important;
    min-width:0!important;
  }

  body.single-cafe_artwork .cafe-artwork-single-content,
  body.single-cafe_artwork .cafe-artwork-single-content p{
    color:#eee7eb!important;
  }
}

/* --------------------------------------------------------------------------
   MON COMPTE — spécialement les écrans très étroits.
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  body.page .page-shell article{
    padding:16px!important;
    border-radius:22px!important;
  }

  body.page .page-shell article > h1{
    margin:6px 0 14px!important;
    font-size:clamp(2rem,10vw,2.8rem)!important;
    line-height:1.02!important;
  }

  .cafe-account-nav{
    position:static!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    overflow:visible!important;
    margin:14px 0 18px!important;
    padding:7px!important;
  }

  .cafe-account-nav a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:0!important;
    padding:9px 7px!important;
    font-size:.72rem!important;
    text-align:center!important;
    white-space:normal!important;
  }

  .cafe-account-section,
  .cafe-community-settings,
  .cafe-my-publications{
    margin-top:18px!important;
    padding:14px!important;
    border-radius:19px!important;
  }

  .cafe-profile-layout{
    display:block!important;
    width:100%!important;
  }

  .cafe-avatar-card{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
    width:100%!important;
    min-width:0!important;
    padding:14px!important;
    overflow:hidden!important;
  }

  .cafe-avatar-preview{
    width:min(150px,52vw)!important;
    max-width:150px!important;
    margin:0 auto!important;
    border-radius:22px!important;
  }

  .cafe-avatar-card > div,
  .cafe-avatar-form,
  .cafe-file-field{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  .cafe-avatar-card h3{
    font-size:1.35rem!important;
  }

  .cafe-avatar-card p{
    font-size:.91rem!important;
    line-height:1.5!important;
  }

  .cafe-file-field input[type="file"]{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:7px!important;
    overflow:hidden!important;
    font-size:13px!important;
  }

  .cafe-file-field input[type="file"]::file-selector-button{
    max-width:100%!important;
    margin-right:7px!important;
    padding:7px 9px!important;
    border:0!important;
    border-radius:9px!important;
    background:#f1e5eb!important;
    color:#463c42!important;
    font:inherit!important;
    font-weight:800!important;
  }

  .cafe-avatar-form .btn,
  .cafe-account-actions .btn,
  .cafe-account-actions a{
    width:100%!important;
    max-width:100%!important;
  }

  .cafe-preference-toggle{
    align-items:flex-start!important;
    gap:10px!important;
  }

  .cafe-my-publication-list article{
    grid-template-columns:1fr!important;
  }
}

/* Encore plus serré pour l'écran extérieur du Galaxy Fold. */
@media(max-width:380px){
  .container,
  .page-shell > .container,
  .cafe-artwork-page-shell > .container{
    width:calc(100% - 8px)!important;
  }

  body.page .page-shell article{
    padding:12px!important;
  }

  .cafe-account-nav{
    grid-template-columns:1fr!important;
  }

  .cafe-avatar-preview{
    width:min(132px,50vw)!important;
  }
}

/* --------------------------------------------------------------------------
   LECTEUR MUSIQUE — composition dédiée mobile.
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  .cafe-music-player{
    padding:6px!important;
    align-items:stretch!important;
  }

  .cafe-music-player-panel{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    width:100%!important;
    height:calc(100dvh - 12px)!important;
    max-height:calc(100dvh - 12px)!important;
    overflow:hidden!important;
    border-radius:20px!important;
  }

  .cafe-music-player-top{
    min-height:72px!important;
    padding:13px 14px!important;
  }

  .cafe-music-player-top strong{
    max-width:calc(100vw - 105px)!important;
    font-size:1rem!important;
  }

  .cafe-music-player-close{
    width:42px!important;
    height:42px!important;
  }

  .cafe-music-player-layout{
    display:block!important;
    min-height:0!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
  }

  .cafe-music-player-left{
    display:grid!important;
    grid-template-columns:92px minmax(0,1fr)!important;
    grid-template-areas:
      "cover meta"
      "progress progress"
      "controls controls"
      "volume volume"!important;
    gap:10px 12px!important;
    align-items:center!important;
    min-height:0!important;
    padding:14px!important;
    overflow:visible!important;
    border-right:0!important;
    border-bottom:1px solid rgba(255,255,255,.08)!important;
  }

  .cafe-music-player-cover-wrap{
    grid-area:cover!important;
    width:92px!important;
    height:92px!important;
    aspect-ratio:1!important;
    margin:0!important;
    border-radius:15px!important;
  }

  .cafe-music-player-meta{
    grid-area:meta!important;
    min-width:0!important;
    margin:0!important;
    text-align:left!important;
  }

  .cafe-music-player-meta h2{
    font-size:1.24rem!important;
    line-height:1.08!important;
  }

  .cafe-music-player-meta p{
    margin:4px 0 8px!important;
    font-size:.83rem!important;
  }

  .cafe-music-player-meta > strong{
    min-height:0!important;
    font-size:.83rem!important;
  }

  .cafe-music-progress{
    grid-area:progress!important;
    grid-template-columns:34px minmax(0,1fr) 34px!important;
    gap:6px!important;
    margin-top:2px!important;
    font-size:.65rem!important;
  }

  .cafe-music-main-controls{
    grid-area:controls!important;
    grid-template-columns:36px 36px 50px 36px 36px!important;
    gap:6px!important;
    margin-top:0!important;
  }

  .cafe-music-control{
    width:36px!important;
    height:36px!important;
    font-size:.9rem!important;
  }

  .cafe-music-play-main{
    width:50px!important;
    height:50px!important;
    font-size:1.1rem!important;
  }

  .cafe-music-volume{
    grid-area:volume!important;
    grid-template-columns:22px minmax(0,1fr)!important;
    width:100%!important;
    margin-top:0!important;
  }

  .cafe-music-player-right{
    display:block!important;
    min-height:0!important;
    padding:13px 12px 16px!important;
  }

  .cafe-music-tracklist-head{
    padding:0 2px 9px!important;
  }

  .cafe-music-tracklist-head strong{
    font-size:1rem!important;
  }

  .cafe-music-player-tracks{
    padding:0!important;
    overflow:visible!important;
  }

  .cafe-player-track{
    grid-template-columns:34px minmax(0,1fr) 34px!important;
    gap:8px!important;
    padding:9px 6px!important;
    border-radius:12px!important;
  }

  .cafe-player-track-button,
  .cafe-player-track-download{
    width:34px!important;
    height:34px!important;
  }

  .cafe-player-track-format{
    display:none!important;
  }

  .cafe-player-track-title strong{
    font-size:.9rem!important;
  }

  .cafe-player-track-title span{
    font-size:.65rem!important;
  }
}

@media(max-width:380px){
  .cafe-music-player{
    padding:3px!important;
  }

  .cafe-music-player-panel{
    height:calc(100dvh - 6px)!important;
    max-height:calc(100dvh - 6px)!important;
    border-radius:15px!important;
  }

  .cafe-music-player-left{
    grid-template-columns:72px minmax(0,1fr)!important;
    padding:10px!important;
  }

  .cafe-music-player-cover-wrap{
    width:72px!important;
    height:72px!important;
  }

  .cafe-music-main-controls{
    grid-template-columns:32px 32px 46px 32px 32px!important;
    gap:4px!important;
  }

  .cafe-music-control{
    width:32px!important;
    height:32px!important;
  }

  .cafe-music-play-main{
    width:46px!important;
    height:46px!important;
  }
}

/* --------------------------------------------------------------------------
   BD — garder le lecteur entièrement dans l'écran étroit.
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  .cafe-bd-reader{
    padding:5px!important;
  }

  .cafe-bd-reader-panel{
    width:100%!important;
    max-width:100%!important;
    height:calc(100dvh - 10px)!important;
    max-height:calc(100dvh - 10px)!important;
    border-radius:18px!important;
  }

  .cafe-bd-reader-page-wrap{
    min-width:0!important;
  }

  #cafe-bd-reader-image{
    max-width:100%!important;
    height:auto!important;
  }
}

/* --------------------------------------------------------------------------
   WIDGETS FIXES — présents mais beaucoup moins envahissants.
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  .cafe-chat-corner{
    left:2px!important;
    bottom:max(3px,env(safe-area-inset-bottom))!important;
    width:70px!important;
    max-width:70px!important;
  }

  .cafe-chat-launcher,
  .cafe-chat-launcher img{
    width:70px!important;
    max-width:70px!important;
  }

  .cafe-complaint-corner{
    right:3px!important;
    bottom:max(3px,env(safe-area-inset-bottom))!important;
  }

  .cafe-complaint-launcher{
    width:43px!important;
    max-width:43px!important;
  }
}

@media(max-width:380px){
  main{
    padding-bottom:82px;
  }

  .cafe-chat-corner,
  .cafe-chat-launcher,
  .cafe-chat-launcher img{
    width:62px!important;
    max-width:62px!important;
  }

  .cafe-complaint-launcher{
    width:39px!important;
    max-width:39px!important;
  }
}

/* --------------------------------------------------------------------------
   Outils Staff sous les contenus : jamais de débordement.
   -------------------------------------------------------------------------- */
@media(max-width:760px){
  .cafe-publication-staff-tools{
    width:100%!important;
    max-width:100%!important;
    padding:13px!important;
    gap:12px!important;
  }

  .cafe-publication-staff-tools .cafe-content-row-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    gap:7px!important;
  }

  .cafe-publication-staff-tools .cafe-content-row-actions .btn,
  .cafe-publication-staff-tools .cafe-content-row-actions form{
    width:100%!important;
    min-width:0!important;
  }
}



/* ==========================================================================
   v0.20.6 — barre de navigation fixée au défilement sur PC
   ========================================================================== */

/*
 * C'est le bandeau supérieur avec :
 * logo Second Life, logo Café Sympa, Événements, CinéChapi, BD,
 * Musique, Artwork, Le coin papote et Mon compte.
 *
 * Sur PC il reste réellement fixé au viewport.
 */
@media(min-width:1001px) and (hover:hover) and (pointer:fine){
  .site-header{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    z-index:1000!important;

    background:rgba(255,250,244,.93)!important;
    backdrop-filter:blur(16px)!important;
    -webkit-backdrop-filter:blur(16px)!important;
    box-shadow:0 7px 22px rgba(81,70,79,.08)!important;
  }

  /*
   * Un élément position:fixed sort du flux :
   * on réserve donc exactement sa place au-dessus du contenu.
   */
  #main-content{
    padding-top:76px!important;
  }

  /*
   * Quand la barre d'administration WordPress est visible,
   * le menu du Café se place juste dessous.
   */
  body.admin-bar .site-header{
    top:32px!important;
  }
}

/*
 * Mobile / tablette :
 * on conserve le comportement responsive existant,
 * sans forcer la barre en fixed.
 */
@media(max-width:1000px), (hover:none), (pointer:coarse){
  .site-header{
    position:sticky!important;
    top:0!important;
  }

  #main-content{
    padding-top:0!important;
  }
}



/* ==========================================================================
   v0.20.7 — éditeur de pages BD
   ========================================================================== */

.cafe-bd-edit-manager{
  display:grid;
  gap:16px;
  padding:16px;
  border:1px solid rgba(81,70,79,.09);
  border-radius:22px;
  background:rgba(255,248,252,.55);
}

.cafe-bd-edit-manager-head{
  display:grid;
  gap:4px;
}

.cafe-bd-edit-manager-head > strong{
  font-size:1.08rem;
}

.cafe-bd-edit-manager-head > p{
  margin:0;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.5;
}

.cafe-bd-cover-remove{
  width:100%;
  margin-top:7px;
  padding:7px 10px;
  border:1px solid rgba(158,59,82,.16);
  border-radius:12px;
  background:rgba(255,235,241,.75);
  color:#96384f;
  font:inherit;
  font-size:.75rem;
  font-weight:900;
  cursor:pointer;
}

.cafe-bd-cover-remove[hidden]{
  display:none!important;
}

.cafe-bd-page-row{
  position:relative;
  display:grid;
  grid-template-rows:auto auto auto;
  gap:5px;
  padding:7px;
  border:1px solid rgba(81,70,79,.08);
  border-radius:15px;
  background:rgba(255,255,255,.74);
  transition:opacity .16s ease, transform .16s ease, box-shadow .16s ease;
}

.cafe-bd-page-row[draggable="true"]{
  cursor:grab;
}

.cafe-bd-page-row.is-dragging{
  opacity:.45;
  transform:scale(.97);
  box-shadow:0 10px 22px rgba(81,70,79,.12);
}

.cafe-bd-page-row strong{
  margin-top:0;
}

.cafe-bd-page-controls{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:4px;
}

.cafe-bd-page-controls button,
.cafe-bd-page-replace{
  display:grid;
  place-items:center;
  min-width:0;
  height:30px;
  padding:0;
  border:1px solid rgba(81,70,79,.10);
  border-radius:9px;
  background:#fff;
  color:#594d54;
  font:inherit;
  font-size:.87rem;
  font-weight:900;
  cursor:pointer;
}

.cafe-bd-page-controls button:hover,
.cafe-bd-page-controls button:focus-visible,
.cafe-bd-page-replace:hover,
.cafe-bd-page-replace:focus-within{
  border-color:rgba(216,42,132,.30);
  background:#fff0f7;
  color:#744735;
}

.cafe-bd-page-controls button.is-danger{
  color:#a33e56;
}

.cafe-bd-page-controls button:disabled{
  opacity:.32;
  cursor:not-allowed;
}

.cafe-bd-page-replace{
  position:relative;
  overflow:hidden;
}

.cafe-bd-page-replace input{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  cursor:pointer;
}

.cafe-form.is-bd-uploading{
  cursor:wait;
}

.cafe-form.is-bd-uploading .cafe-bd-page-row{
  opacity:.72;
}

@media(max-width:700px){
  .cafe-bd-edit-manager{
    padding:11px;
    border-radius:18px;
  }

  .cafe-bd-page-row{
    padding:6px;
  }

  .cafe-bd-page-controls button,
  .cafe-bd-page-replace{
    height:34px;
    font-size:.95rem;
  }

  .cafe-bd-page-row[draggable="true"]{
    cursor:default;
  }
}

@media(max-width:380px){
  .cafe-bd-pages-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .cafe-bd-page-controls{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}



/* ==========================================================================
   v0.20.8 — résumé BD en popup
   ========================================================================== */

.cafe-bd-library-body{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
}

.cafe-bd-page-count{
  display:inline-flex;
  align-items:center;
  min-height:29px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(99,77,89,.07);
  color:#76656e;
  font-size:.76rem;
  font-weight:900;
}

.cafe-bd-summary-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:38px;
  margin-top:3px;
  padding:8px 12px;
  border:1px solid rgba(216,42,132,.16);
  border-radius:13px;
  background:rgba(255,238,246,.72);
  color:#8b5b43;
  font:inherit;
  font-size:.79rem;
  font-weight:900;
  cursor:pointer;
  transition:transform .16s ease, background .16s ease, border-color .16s ease;
}

.cafe-bd-summary-button:hover,
.cafe-bd-summary-button:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(216,42,132,.32);
  background:#ffe5f1;
}

.cafe-bd-summary-modal[hidden]{
  display:none!important;
}

.cafe-bd-summary-modal{
  position:fixed;
  inset:0;
  z-index:1300;
  display:grid;
  place-items:center;
  padding:20px;
}

.cafe-bd-summary-backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:rgba(39,31,36,.62);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  cursor:default;
}

.cafe-bd-summary-card{
  position:relative;
  z-index:1;
  width:min(680px,calc(100vw - 40px));
  max-height:min(720px,calc(100dvh - 40px));
  overflow:hidden;
  padding:30px 30px 26px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:28px;
  background:rgba(255,250,247,.97);
  color:#493f45;
  box-shadow:0 28px 70px rgba(47,36,42,.28);
}

.cafe-bd-summary-close{
  position:absolute;
  top:15px;
  right:15px;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(93,72,83,.08);
  color:#75646d;
  font:inherit;
  font-size:1.45rem;
  font-weight:900;
  cursor:pointer;
}

.cafe-bd-summary-close:hover,
.cafe-bd-summary-close:focus-visible{
  background:#ffe1ef;
  color:#744735;
}

.cafe-bd-summary-card h2{
  margin:8px 52px 10px 0;
  color:#3f363b;
  font-size:clamp(2rem,5vw,3rem);
  line-height:1.02;
}

.cafe-bd-summary-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-bottom:18px;
}

.cafe-bd-summary-meta span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 10px;
  border-radius:999px;
  background:#f5eaf0;
  color:#79636e;
  font-size:.77rem;
  font-weight:900;
}

.cafe-bd-summary-text{
  max-height:min(360px,45dvh);
  overflow-y:auto;
  padding:16px 17px;
  border:1px solid rgba(83,68,76,.07);
  border-radius:18px;
  background:rgba(255,255,255,.72);
  scrollbar-width:thin;
}

.cafe-bd-summary-text p{
  margin:0 0 12px;
  color:#564a50;
  font-size:.98rem;
  line-height:1.65;
}

.cafe-bd-summary-text p:last-child{
  margin-bottom:0;
}

.cafe-bd-summary-actions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:18px;
}

body.cafe-bd-summary-open{
  overflow:hidden!important;
}

@media(max-width:700px){
  .cafe-bd-summary-modal{
    padding:8px;
  }

  .cafe-bd-summary-card{
    width:calc(100vw - 16px);
    max-height:calc(100dvh - 16px);
    padding:24px 17px 18px;
    border-radius:22px;
  }

  .cafe-bd-summary-card h2{
    margin-right:44px;
    font-size:clamp(1.9rem,10vw,2.55rem);
  }

  .cafe-bd-summary-text{
    max-height:48dvh;
    padding:13px;
  }

  .cafe-bd-summary-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .cafe-bd-summary-actions .btn{
    width:100%;
  }
}



/* ==========================================================================
   v0.20.9 — Annuaire des membres
   ========================================================================== */

.cafe-directory-profile-settings{
  scroll-margin-top:105px;
}

.cafe-directory-profile-editor-layout{
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:22px;
  align-items:start;
}

.cafe-directory-profile-preview{
  display:grid;
  justify-items:center;
  gap:7px;
  padding:16px;
  border:1px solid rgba(81,70,79,.08);
  border-radius:22px;
  background:rgba(255,255,255,.72);
  text-align:center;
}

.cafe-directory-profile-preview img,
.cafe-directory-profile-preview > span{
  display:grid;
  place-items:center;
  width:128px;
  height:128px;
  border-radius:50%;
  object-fit:cover;
  background:linear-gradient(135deg,#f5d6e5,#e5e0fb);
  box-shadow:0 10px 25px rgba(81,70,79,.10);
  font-size:3rem;
}

.cafe-directory-profile-preview strong{
  color:#493f45;
  font-size:1rem;
}

.cafe-directory-profile-preview small{
  color:#8a7882;
  font-size:.75rem;
  font-weight:800;
}

.cafe-members-directory{
  display:grid;
  gap:24px;
}

.cafe-members-directory-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
}

.cafe-members-directory-head h2{
  margin:6px 0 8px;
  color:#493f45;
  font-size:clamp(2rem,5vw,3rem);
  line-height:1;
}

.cafe-members-directory-head p{
  max-width:680px;
  margin:0;
  color:#756970;
  line-height:1.55;
}

.cafe-members-directory-count{
  flex:0 0 auto;
  padding:8px 13px;
  border-radius:999px;
  background:#f6dce8;
  color:#a06b4f;
  font-size:.78rem;
  font-weight:900;
}

.cafe-member-directory-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.cafe-member-directory-card{
  display:grid;
  justify-items:center;
  align-content:start;
  gap:7px;
  min-width:0;
  padding:18px 12px 15px;
  border:1px solid rgba(81,70,79,.08);
  border-radius:24px;
  background:rgba(255,255,255,.80);
  color:#493f45;
  font:inherit;
  text-align:center;
  box-shadow:0 10px 28px rgba(81,70,79,.065);
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;
}

.cafe-member-directory-card:hover,
.cafe-member-directory-card:focus-visible{
  transform:translateY(-4px);
  border-color:rgba(216,42,132,.22);
  background:#fffafd;
  box-shadow:0 15px 32px rgba(81,70,79,.11);
  outline:none;
}

.cafe-member-directory-avatar{
  display:grid;
  place-items:center;
  width:112px;
  height:112px;
  overflow:hidden;
  border:4px solid rgba(255,255,255,.92);
  border-radius:50%;
  background:linear-gradient(135deg,#f3cfe1,#ded8f4);
  box-shadow:0 8px 22px rgba(81,70,79,.12);
  font-size:2.6rem;
}

.cafe-member-directory-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.cafe-member-directory-name{
  margin-top:3px;
  max-width:100%;
  color:#493f45;
  font-size:1rem;
  font-weight:950;
  line-height:1.15;
  overflow-wrap:anywhere;
}

.cafe-member-directory-role{
  color:#9a7d8c;
  font-size:.7rem;
  font-weight:850;
}

.cafe-members-directory-empty,
.cafe-members-locked{
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px;
  border:1px solid rgba(81,70,79,.08);
  border-radius:22px;
  background:rgba(255,255,255,.66);
}

.cafe-members-directory-empty > span,
.cafe-members-locked > span{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:54px;
  height:54px;
  border-radius:50%;
  background:#f5dce8;
  font-size:1.7rem;
}

.cafe-members-directory-empty p,
.cafe-members-locked p{
  margin:3px 0 0;
  color:#786c73;
}

/* Popup */
.cafe-member-profile-modal[hidden]{
  display:none!important;
}

.cafe-member-profile-modal{
  position:fixed;
  inset:0;
  z-index:1350;
  display:grid;
  place-items:center;
  padding:20px;
}

.cafe-member-profile-backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:rgba(43,34,39,.64);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  cursor:default;
}

.cafe-member-profile-card{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:270px minmax(0,1fr);
  width:min(790px,calc(100vw - 40px));
  min-height:430px;
  max-height:min(600px,calc(100dvh - 40px));
  overflow:hidden;
  border:1px solid rgba(255,255,255,.70);
  border-radius:28px;
  background:rgba(255,250,247,.98);
  box-shadow:0 28px 70px rgba(47,36,42,.30);
}

.cafe-member-profile-portrait{
  display:grid;
  place-items:center;
  padding:28px;
  background:
    radial-gradient(circle at 35% 30%,rgba(255,255,255,.65),transparent 42%),
    linear-gradient(145deg,#efd6e5,#ddd7f0);
}

.cafe-member-profile-portrait img,
.cafe-member-profile-portrait > span{
  display:grid;
  place-items:center;
  width:210px;
  height:210px;
  border:7px solid rgba(255,255,255,.82);
  border-radius:50%;
  object-fit:cover;
  background:rgba(255,255,255,.42);
  box-shadow:0 14px 34px rgba(81,70,79,.14);
  font-size:4rem;
}

.cafe-member-profile-portrait [hidden]{
  display:none!important;
}

.cafe-member-profile-content{
  display:grid;
  grid-template-rows:auto auto auto minmax(0,1fr);
  min-width:0;
  padding:44px 32px 28px;
}

.cafe-member-profile-content h3{
  margin:7px 50px 5px 0;
  color:#493f45;
  font-size:clamp(2.2rem,5vw,3.25rem);
  line-height:1;
  overflow-wrap:anywhere;
}

.cafe-member-profile-content > strong{
  color:#744735;
  font-size:.88rem;
}

.cafe-member-profile-bio{
  min-height:0;
  margin-top:17px;
  overflow-y:auto;
  padding-right:11px;
  scrollbar-width:thin;
}

.cafe-member-profile-bio p{
  margin:0 0 13px;
  color:#5f5359;
  font-size:.98rem;
  line-height:1.65;
}

.cafe-member-profile-bio p:last-child{
  margin-bottom:0;
}

.cafe-member-profile-close{
  position:absolute;
  top:15px;
  right:15px;
  z-index:3;
  display:grid;
  place-items:center;
  width:39px;
  height:39px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(88,69,79,.10);
  color:#75656d;
  font:inherit;
  font-size:1.45rem;
  font-weight:950;
  cursor:pointer;
}

.cafe-member-profile-close:hover,
.cafe-member-profile-close:focus-visible{
  background:#ffe1ef;
  color:#744735;
}

body.cafe-member-profile-open{
  overflow:hidden!important;
}

@media(max-width:950px){
  .cafe-member-directory-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .cafe-directory-profile-editor-layout{
    grid-template-columns:1fr;
  }

  .cafe-members-directory-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .cafe-member-directory-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }

  .cafe-member-directory-card{
    padding:13px 8px 12px;
    border-radius:18px;
  }

  .cafe-member-directory-avatar{
    width:min(96px,31vw);
    height:min(96px,31vw);
  }

  .cafe-member-profile-modal{
    padding:8px;
  }

  .cafe-member-profile-card{
    grid-template-columns:1fr;
    grid-template-rows:170px minmax(0,1fr);
    width:calc(100vw - 16px);
    min-height:0;
    height:min(650px,calc(100dvh - 16px));
    max-height:calc(100dvh - 16px);
    border-radius:22px;
  }

  .cafe-member-profile-portrait{
    padding:14px;
  }

  .cafe-member-profile-portrait img,
  .cafe-member-profile-portrait > span{
    width:142px;
    height:142px;
    border-width:5px;
    font-size:3rem;
  }

  .cafe-member-profile-content{
    padding:20px 18px 18px;
  }

  .cafe-member-profile-content h3{
    margin-right:42px;
    font-size:clamp(2rem,10vw,2.7rem);
  }
}



/* ==========================================================================
   v0.20.10 — navigation PC sur une seule ligne
   ========================================================================== */

@media(min-width:1001px) and (hover:hover) and (pointer:fine){
  .site-header .nav-wrap{
    gap:10px!important;
  }

  .site-header .main-nav{
    display:flex!important;
    align-items:center!important;
    flex-wrap:nowrap!important;
    gap:4px!important;
    min-width:0!important;
    white-space:nowrap!important;
  }

  .site-header .main-nav > a{
    flex:0 0 auto!important;
    padding:8px 7px!important;
    font-size:.79rem!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  .site-header .main-nav .btn,
  .site-header .main-nav button{
    flex:0 0 auto!important;
  }
}

/* Sur les PC un peu plus étroits, on serre encore légèrement. */
@media(min-width:1001px) and (max-width:1280px) and (hover:hover) and (pointer:fine){
  .site-header .nav-wrap{
    gap:7px!important;
  }

  .site-header .main-nav{
    gap:2px!important;
  }

  .site-header .main-nav > a{
    padding-inline:5px!important;
    font-size:.73rem!important;
  }
}



/* ==========================================================================
   v0.20.11 — éditeur enrichi des annonces
   ========================================================================== */

.cafe-news-editor-field{
  display:grid;
  gap:7px;
  min-width:0;
}

.cafe-form-label{
  display:block;
  color:#51464c;
  font-size:.9rem;
  font-weight:900;
}

.cafe-news-rich-editor-wrap{
  min-width:0;
}

.cafe-news-rich-editor-wrap .wp-editor-wrap{
  overflow:hidden;
  border:1px solid rgba(88,69,79,.13);
  border-radius:17px;
  background:#fffdfb;
  box-shadow:0 7px 20px rgba(81,70,79,.045);
}

.cafe-news-rich-editor-wrap .wp-editor-container{
  border:0!important;
}

.cafe-news-rich-editor-wrap .mce-tinymce{
  border:0!important;
  box-shadow:none!important;
}

.cafe-news-rich-editor-wrap .mce-toolbar-grp{
  padding:6px!important;
  border-bottom:1px solid rgba(88,69,79,.10)!important;
  background:linear-gradient(180deg,#fffafd,#fff2f8)!important;
}

.cafe-news-rich-editor-wrap .mce-toolbar{
  display:flex!important;
  flex-wrap:wrap!important;
}

.cafe-news-rich-editor-wrap .mce-btn{
  border-radius:7px!important;
}

.cafe-news-rich-editor-wrap .mce-btn:hover,
.cafe-news-rich-editor-wrap .mce-btn:focus,
.cafe-news-rich-editor-wrap .mce-btn.mce-active{
  background:#ffe0ef!important;
}

.cafe-news-rich-editor-wrap iframe{
  min-height:300px!important;
  background:#fffdfb!important;
}

.cafe-news-editor-help{
  display:block;
  margin:7px 4px 0;
  color:#897981;
  font-size:.72rem;
  line-height:1.45;
}

body.single-cafe_news .page-shell article{
  overflow-wrap:anywhere;
}

@media(max-width:760px){
  .cafe-news-rich-editor-wrap .wp-editor-wrap{
    border-radius:14px;
  }

  .cafe-news-rich-editor-wrap .mce-toolbar-grp{
    padding:4px!important;
  }

  .cafe-news-rich-editor-wrap .mce-menubtn button{
    max-width:135px!important;
  }

  .cafe-news-rich-editor-wrap iframe{
    min-height:260px!important;
  }
}



/* ==========================================================================
   v0.20.12 — éditeur enrichi et image jointe dans le forum
   ========================================================================== */

.cafe-forum-rich-form,
.cafe-forum-reply-editor{
  min-width:0;
}

.cafe-forum-rich-editor-wrap{
  min-width:0;
}

.cafe-forum-rich-editor-wrap .wp-editor-wrap{
  overflow:hidden;
  border:1px solid rgba(88,69,79,.13);
  border-radius:17px;
  background:#fffdfb;
  box-shadow:0 7px 20px rgba(81,70,79,.045);
}

.cafe-forum-rich-editor-wrap .wp-editor-container{
  border:0!important;
}

.cafe-forum-rich-editor-wrap .mce-tinymce{
  border:0!important;
  box-shadow:none!important;
}

.cafe-forum-rich-editor-wrap .mce-toolbar-grp{
  padding:6px!important;
  border-bottom:1px solid rgba(88,69,79,.10)!important;
  background:linear-gradient(180deg,#fffafd,#fff2f8)!important;
}

.cafe-forum-rich-editor-wrap .mce-toolbar{
  display:flex!important;
  flex-wrap:wrap!important;
}

.cafe-forum-rich-editor-wrap .mce-btn{
  border-radius:7px!important;
}

.cafe-forum-rich-editor-wrap .mce-btn:hover,
.cafe-forum-rich-editor-wrap .mce-btn:focus,
.cafe-forum-rich-editor-wrap .mce-btn.mce-active{
  background:#ffe0ef!important;
}

.cafe-forum-rich-editor-wrap iframe{
  min-height:230px!important;
  background:#fffdfb!important;
}

.cafe-forum-image-field{
  display:grid;
  gap:8px;
  min-width:0;
  margin-top:13px;
  padding:13px;
  border:1px dashed rgba(170,95,132,.24);
  border-radius:16px;
  background:rgba(255,245,250,.60);
}

.cafe-forum-image-field input[type="file"]{
  display:block;
  width:100%;
  max-width:100%;
}

.cafe-forum-image-field > small{
  color:#8b7b83;
  font-size:.7rem;
}

.cafe-forum-image-edit-preview,
.cafe-forum-image-local-preview{
  width:min(260px,100%);
  overflow:hidden;
  border-radius:14px;
  background:#eee;
}

.cafe-forum-image-edit-preview img,
.cafe-forum-image-local-preview img{
  display:block;
  width:100%;
  height:auto;
  max-height:240px;
  object-fit:cover;
}

.cafe-forum-remove-image{
  display:flex!important;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  color:#96384f;
  font-size:.78rem!important;
  font-weight:850;
}

.cafe-forum-remove-image input{
  width:auto!important;
}

.cafe-forum-attached-image{
  margin:14px 0 2px;
}

.cafe-forum-attached-image a{
  display:block;
  width:max-content;
  max-width:100%;
}

.cafe-forum-attached-image img{
  display:block;
  width:auto;
  max-width:min(680px,100%);
  max-height:720px;
  border:1px solid rgba(81,70,79,.09);
  border-radius:15px;
  object-fit:contain;
  background:#f5f1f3;
  box-shadow:0 8px 22px rgba(81,70,79,.07);
}

.cafe-topic-message,
.comment-content{
  max-width:100%;
  overflow-wrap:anywhere;
}

@media(max-width:760px){
  .cafe-forum-rich-editor-wrap .wp-editor-wrap{
    border-radius:14px;
  }

  .cafe-forum-rich-editor-wrap .mce-toolbar-grp{
    padding:4px!important;
  }

  .cafe-forum-rich-editor-wrap .mce-menubtn button{
    max-width:135px!important;
  }

  .cafe-forum-rich-editor-wrap iframe{
    min-height:210px!important;
  }

  .cafe-forum-image-field{
    padding:10px;
    border-radius:14px;
  }

  .cafe-forum-attached-image img{
    width:100%;
    max-height:70dvh;
  }
}



/* ==========================================================================
   v0.20.13 — ambiance automne
   ========================================================================== */

html,
body{
  background-color:#f6dfd6;
}

body{
  background-image:
    linear-gradient(
      rgba(255,246,240,.12),
      rgba(255,246,240,.12)
    ),
    url("assets/img/background-autumn-cafe-sympa-blur.webp")!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  background-attachment:fixed!important;
}

.site-main,
.page-shell,
.home-shell{
  position:relative;
}

@media(max-width:1000px){
  body{
    background-attachment:scroll!important;
    background-position:center top!important;
  }
}

@media(max-width:430px){
  body{
    background-position:58% top!important;
  }
}



/* ==========================================================================
   v0.20.17 — visuel Axel automne + cache bust
   ========================================================================== */

.cafe-chat-launcher img{
  display:block;
  width:100%!important;
  height:auto!important;
  object-fit:contain!important;
}



/* ==========================================================================
   v0.20.18 — Akikazu automne pour le Bureau des plaintes
   ========================================================================== */

.cafe-complaint-launcher img,
.cafe-complaint-mailbox img,
.cafe-complaint-trigger img{
  display:block;
  width:100%!important;
  height:auto!important;
  object-fit:contain!important;
}



/* ==========================================================================
   v0.20.19 — Akikazu plaintes plus visible
   ========================================================================== */

/* PC : plus grande et remontée */
@media(min-width:1001px){
  .cafe-complaint-launcher,
  .cafe-complaint-mailbox,
  .cafe-complaint-trigger{
    bottom:28px!important;
  }

  .cafe-complaint-launcher img,
  .cafe-complaint-mailbox img,
  .cafe-complaint-trigger img{
    width:190px!important;
    max-width:none!important;
    height:auto!important;
    object-fit:contain!important;
    transform:translateY(-18px)!important;
    transform-origin:bottom right!important;
  }
}

/* Tablette : légèrement plus compacte */
@media(min-width:701px) and (max-width:1000px){
  .cafe-complaint-launcher,
  .cafe-complaint-mailbox,
  .cafe-complaint-trigger{
    bottom:22px!important;
  }

  .cafe-complaint-launcher img,
  .cafe-complaint-mailbox img,
  .cafe-complaint-trigger img{
    width:160px!important;
    max-width:none!important;
    transform:translateY(-14px)!important;
    transform-origin:bottom right!important;
  }
}

/* Mobile : visible sans prendre trop de place */
@media(max-width:700px){
  .cafe-complaint-launcher,
  .cafe-complaint-mailbox,
  .cafe-complaint-trigger{
    bottom:18px!important;
  }

  .cafe-complaint-launcher img,
  .cafe-complaint-mailbox img,
  .cafe-complaint-trigger img{
    width:132px!important;
    max-width:none!important;
    transform:translateY(-10px)!important;
    transform-origin:bottom right!important;
  }
}



/* ==========================================================================
   v0.20.20 — Akikazu entière dans l'écran
   ========================================================================== */

/*
 * Le problème venait du bouton .cafe-complaint-launcher :
 * les anciennes règles mobiles le limitaient à 39–62 px tandis que
 * l'image était forcée à 132 px. L'image débordait donc hors écran.
 *
 * Ici, le bouton ET l'image ont exactement la même largeur.
 */

/* PC */
@media(min-width:1001px){
  .cafe-complaint-corner{
    right:16px!important;
    bottom:20px!important;
  }

  .cafe-complaint-launcher{
    width:190px!important;
    max-width:190px!important;
    transform:none!important;
  }

  .cafe-complaint-launcher img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    transform:none!important;
    object-fit:contain!important;
  }

  .cafe-complaint-launcher:hover,
  .cafe-complaint-launcher:focus-visible{
    transform:translateY(-4px) scale(1.025)!important;
  }
}

/* Tablette / petite fenêtre PC */
@media(min-width:701px) and (max-width:1000px){
  .cafe-complaint-corner{
    right:12px!important;
    bottom:18px!important;
  }

  .cafe-complaint-launcher{
    width:165px!important;
    max-width:165px!important;
    transform:none!important;
  }

  .cafe-complaint-launcher img{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    transform:none!important;
  }
}

/* Mobile */
@media(max-width:700px){
  .cafe-complaint-corner{
    right:10px!important;
    bottom:max(14px,env(safe-area-inset-bottom))!important;
  }

  .cafe-complaint-launcher{
    width:145px!important;
    max-width:145px!important;
    transform:none!important;
  }

  .cafe-complaint-launcher img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    transform:none!important;
  }

  .cafe-complaint-launcher:hover,
  .cafe-complaint-launcher:focus-visible{
    transform:none!important;
  }
}

/* Petit mobile / Fold fermé */
@media(max-width:480px){
  .cafe-complaint-corner{
    right:8px!important;
    bottom:max(12px,env(safe-area-inset-bottom))!important;
  }

  .cafe-complaint-launcher{
    width:124px!important;
    max-width:124px!important;
  }
}

@media(max-width:380px){
  .cafe-complaint-launcher{
    width:112px!important;
    max-width:112px!important;
  }
}



/* ==========================================================================
   v0.20.21 — Akikazu légèrement plus petite et plus basse
   ========================================================================== */

/* PC : 190px -> 171px (~ -10 %) */
@media(min-width:1001px){
  .cafe-complaint-corner{
    bottom:8px!important;
  }

  .cafe-complaint-launcher{
    width:171px!important;
    max-width:171px!important;
  }
}

/* Tablette : 165px -> 149px */
@media(min-width:701px) and (max-width:1000px){
  .cafe-complaint-corner{
    bottom:7px!important;
  }

  .cafe-complaint-launcher{
    width:149px!important;
    max-width:149px!important;
  }
}

/* Mobile : 145px -> 131px */
@media(max-width:700px){
  .cafe-complaint-corner{
    bottom:max(6px,env(safe-area-inset-bottom))!important;
  }

  .cafe-complaint-launcher{
    width:131px!important;
    max-width:131px!important;
  }
}

/* Petit mobile / Fold fermé : 124px -> 112px */
@media(max-width:480px){
  .cafe-complaint-corner{
    bottom:max(5px,env(safe-area-inset-bottom))!important;
  }

  .cafe-complaint-launcher{
    width:112px!important;
    max-width:112px!important;
  }
}

/* Très petit écran : 112px -> 101px */
@media(max-width:380px){
  .cafe-complaint-launcher{
    width:101px!important;
    max-width:101px!important;
  }
}



/* ==========================================================================
   v0.20.22 — Akikazu plus basse
   ========================================================================== */

/* Taille inchangée : on la descend uniquement. */
@media(min-width:1001px){
  .cafe-complaint-corner{
    bottom:-28px!important;
  }
}

@media(min-width:701px) and (max-width:1000px){
  .cafe-complaint-corner{
    bottom:-20px!important;
  }
}

@media(max-width:700px){
  .cafe-complaint-corner{
    bottom:-14px!important;
  }
}

@media(max-width:480px){
  .cafe-complaint-corner{
    bottom:-10px!important;
  }
}

@media(max-width:380px){
  .cafe-complaint-corner{
    bottom:-8px!important;
  }
}



/* ==========================================================================
   v0.20.23 — accents roses -> palette chocolat automnale
   ========================================================================== */

:root{
  --cafe-choco-deep:#5a3025;
  --cafe-choco:#744735;
  --cafe-choco-mid:#8b5b43;
  --cafe-choco-soft:#a97659;
  --cafe-caramel:#c69778;
  --cafe-cream:#fff4e8;
}

/* Titres et grands accents autrefois rose vif */
.home-news h2,
.home-news-title,
.cafe-section-title,
.cafe-news-title,
.cafe-section-heading,
.cafe-account-section h2,
.cafe-account-section h3{
  color:var(--cafe-choco-deep)!important;
}

/* Liens / appels à l'action autrefois roses :
   Voir le profil, liens secondaires, actions de cartes, etc. */
.actor-card a,
.actor-card .actor-profile-link,
.staff-card a,
.staff-card .profile-link,
.cafe-card a:not(.btn),
.cafe-topic-card a,
.cafe-news-card a,
.cafe-event-card a,
.cafe-account-section a:not(.btn),
.cafe-members-directory a:not(.btn){
  color:var(--cafe-choco)!important;
}

.actor-card a:hover,
.actor-card .actor-profile-link:hover,
.staff-card a:hover,
.staff-card .profile-link:hover,
.cafe-card a:not(.btn):hover,
.cafe-topic-card a:hover,
.cafe-news-card a:hover,
.cafe-event-card a:hover,
.cafe-account-section a:not(.btn):hover,
.cafe-members-directory a:not(.btn):hover{
  color:var(--cafe-choco-deep)!important;
}

/* Petits textes d'accent qui utilisaient un rose plus clair */
.cafe-kicker,
.cafe-member-directory-role,
.cafe-members-directory-count,
.cafe-member-profile-content > strong,
.cafe-directory-profile-preview small,
.actor-role,
.staff-role,
.cafe-meta-accent{
  color:var(--cafe-choco-soft)!important;
}

/* Badges / notifications : rose -> chocolat */
.cafe-notification-badge,
.cafe-chat-unread-badge,
.site-account-notification,
.account-notification-badge,
.notification-badge,
.cafe-badge-notification,
.cafe-account-badge{
  background:var(--cafe-choco-deep)!important;
  color:var(--cafe-cream)!important;
  border-color:rgba(255,244,232,.35)!important;
}

/* Pastilles d'annonce / épingles et autres badges roses */
.cafe-badge,
.cafe-chip,
.cafe-news-badge,
.cafe-pin-badge,
.cafe-card-badge,
.cafe-tag-pink{
  --badge-bg:var(--cafe-choco)!important;
}

.cafe-news-badge,
.cafe-pin-badge,
.cafe-card-badge,
.cafe-tag-pink{
  background:var(--cafe-choco)!important;
  color:var(--cafe-cream)!important;
}

/* Boutons/accents qui héritaient directement du rose principal */
.btn-primary,
.cafe-btn-primary{
  background:var(--cafe-choco)!important;
  border-color:var(--cafe-choco)!important;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.cafe-btn-primary:hover,
.cafe-btn-primary:focus-visible{
  background:var(--cafe-choco-deep)!important;
  border-color:var(--cafe-choco-deep)!important;
}

/* Focus et petits éléments actifs : caramel plutôt que rose */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  outline-color:var(--cafe-caramel)!important;
}

/* Le grand titre "Quoi de neuf ?" a son sélecteur propre sur l'accueil. */
.home-updates h2,
.home-updates-title,
.cafe-home-news-heading{
  color:var(--cafe-choco-deep)!important;
}

/* Navigation / compte : badge numérique bien chocolat */
.site-header .account-link .notification-count,
.site-header .account-link .badge,
.site-header .account-badge,
.site-header .notification-count{
  background:var(--cafe-choco-deep)!important;
  color:var(--cafe-cream)!important;
}

/* Liens de profils Staff explicitement ciblés au cas où leur CSS historique
   soit plus spécifique. */
.actor-card .actor-link,
.actor-card .actor-more,
.actor-card .actor-profile,
.staff-card .actor-link,
.staff-card .actor-more,
.staff-card .actor-profile{
  color:var(--cafe-choco)!important;
}



/* ==========================================================================
   v0.20.24 — palette chocolat appliquée aux VRAIS accents roses
   ========================================================================== */

:root{
  --cafe-choco-dark:#5a3025;
  --cafe-choco:#744735;
  --cafe-choco-medium:#8b5b43;
  --cafe-choco-light:#a8755a;
  --cafe-choco-caramel:#c69778;
  --cafe-autumn-cream:#fff4e8;
}

/* "Quoi de neuf ?" — ancien #f0008c */
body.home .home-whatsnew-head h2,
.home-whatsnew-head h2,
.home-mixed-feed-head h2{
  color:var(--cafe-choco-dark)!important;
}

/* Staff : rôles sous le nom */
body.home .actor-card p,
body.home .staff-staggered-card p,
.staff-staggered .actor-card p{
  color:var(--cafe-choco-light)!important;
}

/* Staff : "Voir le profil ✨" */
body.home .actor-card-hint,
.staff-profile-trigger .actor-card-hint{
  color:var(--cafe-choco)!important;
}

/* Annonce : badge rose de la carte */
.home-whatsnew-card.is-news .home-whatsnew-type-badge{
  background:rgba(90,48,37,.94)!important;
  color:var(--cafe-autumn-cream)!important;
}

/* "À la une" : texte chocolat, fond crème chaud */
.home-whatsnew-pinned-badge{
  background:rgba(255,244,232,.94)!important;
  color:var(--cafe-choco)!important;
}

/* Bordure de la carte d'annonce épinglée */
.home-whatsnew-card.is-news:first-child,
.home-whatsnew-grid-mixed .home-whatsnew-card.is-news:first-child{
  border-color:rgba(116,71,53,.28)!important;
  box-shadow:
    0 12px 30px rgba(81,70,79,.08),
    0 0 0 2px rgba(116,71,53,.07)!important;
}

/* Compteur rose "Mon compte" */
.cafe-account-notification-badge{
  background:var(--cafe-choco-dark)!important;
  color:var(--cafe-autumn-cream)!important;
}

/* Notifications dans Mon compte */
.cafe-notification-new{
  background:var(--cafe-choco-dark)!important;
  color:var(--cafe-autumn-cream)!important;
}

.cafe-member-notification.is-unread{
  border-color:rgba(116,71,53,.18)!important;
  background:linear-gradient(
    135deg,
    rgba(241,220,204,.86),
    rgba(251,242,232,.88)
  )!important;
}

.cafe-member-notification-icon{
  background:#ead5c6!important;
}

/* Badge de nouveaux messages sur Axel */
.cafe-chat-unread-badge{
  background:var(--cafe-choco-dark)!important;
  color:var(--cafe-autumn-cream)!important;
  border-color:#fff4e8!important;
  box-shadow:0 5px 14px rgba(75,39,29,.30)!important;
}

/* Accents du tchat qui étaient encore roses */
.cafe-chat-head h2,
.cafe-chat-tool-button,
.cafe-chat-tool-close:hover,
.cafe-chat-tool-close:focus-visible{
  color:var(--cafe-choco)!important;
}

/* Accents du forum autrefois fuchsia */
.cafe-forum-request-link,
.cafe-forum-admin-request-panel h2,
.cafe-forum-edit-request h3,
.cafe-forum-thread-block .cafe-replies > h2{
  color:var(--cafe-choco)!important;
}

/* Annuaire : accents chocolat doux */
.cafe-members-directory-count,
.cafe-member-profile-content > strong{
  color:var(--cafe-choco-medium)!important;
}

/* Bureau des plaintes : textes d'accent */
.cafe-staff-complaints-head h3,
.cafe-complaint-count{
  color:var(--cafe-choco)!important;
}

/* Flèches Staff mobile */
.staff-mobile-arrow{
  color:var(--cafe-choco)!important;
}



/* ==========================================================================
   v0.20.26 — logo automnal
   ========================================================================== */

.site-brand img,
.site-logo img,
.site-header .logo img,
.site-header .brand img{
  display:block;
  width:auto!important;
  max-width:340px!important;
  height:auto!important;
  max-height:92px!important;
  object-fit:contain!important;
}

@media(max-width:1000px){
  .site-brand img,
  .site-logo img,
  .site-header .logo img,
  .site-header .brand img{
    max-width:270px!important;
    max-height:76px!important;
  }
}

@media(max-width:520px){
  .site-brand img,
  .site-logo img,
  .site-header .logo img,
  .site-header .brand img{
    max-width:210px!important;
    max-height:64px!important;
  }
}



/* ==========================================================================
   v0.20.27 — vrai logo Café Sympa automnal
   ========================================================================== */

.site-header .brand-logo-link{
  width:300px!important;
  max-width:29vw!important;
}

.site-header .header-cafe-logo{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  max-height:82px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 4px 7px rgba(44,28,24,.20))!important;
}

@media(max-width:1100px){
  .site-header .brand-logo-link{
    width:225px!important;
    max-width:32vw!important;
  }

  .site-header .header-cafe-logo{
    max-height:68px!important;
  }
}

@media(max-width:900px){
  .site-header .brand-logo-link{
    width:min(195px,48vw)!important;
    max-width:48vw!important;
  }

  .site-header .header-cafe-logo{
    max-height:58px!important;
  }
}

@media(max-width:520px){
  .site-header .brand-logo-link{
    width:min(165px,48vw)!important;
  }

  .site-header .header-cafe-logo{
    max-height:52px!important;
  }
}



/* ==========================================================================
   v0.20.28 — SEO visible + performance
   ========================================================================== */

.hero-seo-intro{
  width:min(880px,calc(100% - 24px));
  margin:16px auto 0;
  padding:12px 18px 13px;
  border:1px solid rgba(90,48,37,.12);
  border-radius:20px;
  background:rgba(255,244,232,.72);
  box-shadow:0 8px 22px rgba(70,41,31,.06);
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
  text-align:center;
}

.hero-seo-intro h1{
  margin:0;
  color:#5a3025;
  font-size:clamp(1.25rem,2.2vw,1.85rem);
  line-height:1.15;
  font-weight:950;
}

.hero-seo-intro p{
  max-width:760px;
  margin:7px auto 0;
  color:#744735;
  font-size:.92rem;
  line-height:1.55;
  font-weight:650;
}

@media(max-width:700px){
  .hero-seo-intro{
    margin-top:11px;
    padding:11px 13px 12px;
    border-radius:16px;
  }

  .hero-seo-intro h1{
    font-size:1.16rem;
  }

  .hero-seo-intro p{
    font-size:.82rem;
  }
}



/* ==========================================================================
   v0.20.30 — nouvelle main Second Life automnale
   ========================================================================== */

.site-header .header-sl-logo{
  flex-basis:48px!important;
  width:48px!important;
  height:58px!important;
}

.site-header .header-sl-logo img{
  width:48px!important;
  height:48px!important;
  max-width:48px!important;
  max-height:48px!important;
  object-fit:contain!important;
}

@media(max-width:760px){
  .site-header .header-sl-logo{
    flex-basis:40px!important;
    width:40px!important;
    height:48px!important;
  }

  .site-header .header-sl-logo img{
    width:40px!important;
    height:40px!important;
    max-width:40px!important;
    max-height:40px!important;
  }
}

@media(max-width:480px){
  .site-header .header-sl-logo{
    flex-basis:34px!important;
    width:34px!important;
    height:42px!important;
  }

  .site-header .header-sl-logo img{
    width:34px!important;
    height:34px!important;
    max-width:34px!important;
    max-height:34px!important;
  }
}



/* ==========================================================================
   v0.20.31 — apparence Café Sympa verrouillée
   ==========================================================================
   Ce n'est PAS un mode sombre dépendant du navigateur.
   L'apparence est volontairement identique en mode système clair ou sombre.
   ========================================================================== */

:root{
  color-scheme:only light!important;

  --cafe-fixed-panel:rgba(25,21,19,.86);
  --cafe-fixed-panel-strong:rgba(20,17,16,.93);
  --cafe-fixed-panel-soft:rgba(38,31,28,.78);
  --cafe-fixed-header:rgba(25,21,19,.97);
  --cafe-fixed-border:rgba(255,235,218,.10);
  --cafe-fixed-text:#f5ece7;
  --cafe-fixed-soft:#d8c7bd;
  --cafe-fixed-muted:#b79f91;
  --cafe-fixed-accent:#c88c68;
  --cafe-fixed-accent-light:#efc5aa;
}

/*
 * On garde le décor automnal exactement comme avant.
 * Le navigateur n'a pas le droit de le "convertir" en clair/sombre.
 */
html{
  background:#1b1715!important;
}

body{
  color:#f3e9e3!important;
}

/* --------------------------------------------------------------------------
   Bandeau principal / catégories
   -------------------------------------------------------------------------- */

.site-header{
  background:var(--cafe-fixed-header)!important;
  border-bottom-color:rgba(255,238,224,.07)!important;
  -webkit-backdrop-filter:blur(16px)!important;
  backdrop-filter:blur(16px)!important;
}

.site-header .main-nav a{
  color:#eee2dc!important;
}

.site-header .main-nav a:hover,
.site-header .main-nav a:focus-visible{
  background:rgba(255,255,255,.08)!important;
  color:#fff8f3!important;
  box-shadow:none!important;
}

.site-header .account-link{
  background:rgba(92,75,88,.78)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.06)!important;
}

.site-header .cafe-mobile-menu-toggle{
  background:rgba(255,255,255,.08)!important;
  color:#fff3ec!important;
  border-color:rgba(255,255,255,.08)!important;
}

@media(max-width:900px){
  .site-header .main-nav{
    background:rgba(25,21,19,.985)!important;
    border-color:rgba(255,238,224,.08)!important;
    box-shadow:0 20px 45px rgba(0,0,0,.28)!important;
  }
}

/* --------------------------------------------------------------------------
   Blocs noirs/transparents — apparence commune
   -------------------------------------------------------------------------- */

.cafe-panel,
.cafe-forum,
.cafe-topic-page,
.cafe-forum-kawaii,
.cafe-forum-compose,
.page-shell article,
.hero-seo-intro,
.cafe-account-section,
.cafe-staff-complaints,
.cafe-member-notifications,
.cafe-members-directory,
.cafe-member-profile-card,
.cafe-directory-profile-settings,
.cafe-content-edit-card,
.cafe-staff-tools-card{
  background:var(--cafe-fixed-panel)!important;
  border-color:var(--cafe-fixed-border)!important;
  color:var(--cafe-fixed-text)!important;
  box-shadow:0 15px 36px rgba(0,0,0,.18)!important;
  -webkit-backdrop-filter:blur(9px)!important;
  backdrop-filter:blur(9px)!important;
}

/* Supprime les halos rose/bleu clairs des panneaux forum. */
.cafe-forum-kawaii,
.cafe-topic-page,
.cafe-forum-compose{
  background:var(--cafe-fixed-panel)!important;
}

/* --------------------------------------------------------------------------
   Forum : même rendu sombre sur tous les navigateurs
   -------------------------------------------------------------------------- */

.cafe-topic-card,
.cafe-comment-list .comment,
.cafe-topic-message,
.cafe-topic-author-card,
.cafe-forum-empty,
.cafe-reply-box{
  background:var(--cafe-fixed-panel-strong)!important;
  border-color:rgba(255,235,218,.07)!important;
  color:var(--cafe-fixed-text)!important;
  box-shadow:none!important;
}

.cafe-topic-card:hover{
  background:rgba(31,27,25,.96)!important;
  border-color:rgba(200,140,104,.24)!important;
}

.cafe-topic-main > strong,
.cafe-topic-author-card strong,
.cafe-topic-message,
.comment-content,
.cafe-comment-list .comment{
  color:#f4ebe6!important;
}

.cafe-topic-main > p,
.cafe-topic-meta-line,
.cafe-topic-author-card span,
.cafe-topic-replies span:last-child{
  color:#bca9a0!important;
}

.cafe-forum-heading p{
  color:#ddd0c9!important;
}

.cafe-topic-replies{
  background:rgba(31,48,60,.72)!important;
}

.cafe-forum-new-button{
  background:#7c4d38!important;
  border-color:#a06c4e!important;
  color:#fff5ef!important;
  box-shadow:0 8px 20px rgba(0,0,0,.16)!important;
}

/* --------------------------------------------------------------------------
   Accueil : cartes, staff, Quoi de neuf
   -------------------------------------------------------------------------- */

.actor-card,
.staff-staggered-card,
.home-whatsnew-card,
.home-news-sidebar,
.home-news-sidebar-card{
  background:rgba(30,25,23,.88)!important;
  border-color:rgba(255,235,218,.08)!important;
  color:var(--cafe-fixed-text)!important;
  box-shadow:0 12px 28px rgba(0,0,0,.15)!important;
}

.actor-card h3,
.staff-staggered-card h3,
.home-whatsnew-body h3,
.home-news-sidebar-copy > strong{
  color:#f4e9e3!important;
}

.actor-card p,
.staff-staggered-card p,
.home-whatsnew-body,
.home-news-sidebar-copy p{
  color:#d0bdb3!important;
}

.home-whatsnew-head h2,
.home-mixed-feed-head h2,
.section h2{
  color:#f1cbb5!important;
}

.home-whatsnew-head p,
.home-mixed-feed-head p,
.section-lead{
  color:#f2e5dd!important;
}

/* SEO intro : même panneau chocolat translucide */
.hero-seo-intro{
  background:rgba(37,28,23,.78)!important;
}

.hero-seo-intro h1{
  color:#f0cdb9!important;
}

.hero-seo-intro p{
  color:#eadbd2!important;
}

/* --------------------------------------------------------------------------
   Annuaire / compte / recherche / contenus divers
   -------------------------------------------------------------------------- */

.cafe-member-directory-card,
.cafe-directory-profile-preview,
.cafe-members-directory-empty,
.cafe-members-locked,
.cafe-search-result,
.cafe-member-notification,
.cafe-complaint-review-card,
.cafe-complaint-empty{
  background:rgba(28,23,21,.88)!important;
  border-color:rgba(255,235,218,.08)!important;
  color:var(--cafe-fixed-text)!important;
}

.cafe-member-directory-name,
.cafe-directory-profile-preview strong,
.cafe-search-result h3{
  color:#f3e7e0!important;
}

.cafe-members-directory-head p,
.cafe-search-result p,
.cafe-directory-profile-preview small{
  color:#c8b6ab!important;
}

/* Calendrier / évènements */
.cafe-calendar-day,
.cafe-event-view-switch{
  background:rgba(28,23,21,.82)!important;
  border-color:rgba(255,235,218,.08)!important;
}

.cafe-calendar-day.is-empty{
  background:rgba(28,23,21,.30)!important;
}

.cafe-calendar-day-number,
.cafe-calendar-weekdays span,
.cafe-event-view-switch a{
  color:#dbcac0!important;
}

/* --------------------------------------------------------------------------
   Formulaires : couleurs explicites, donc pas de changement clair/sombre
   -------------------------------------------------------------------------- */

input,
textarea,
select,
button{
  color-scheme:light!important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
textarea,
select{
  background:#1c1816!important;
  color:#f4eae5!important;
  border-color:rgba(255,235,218,.14)!important;
}

input::placeholder,
textarea::placeholder{
  color:#9f8e85!important;
  opacity:1!important;
}

input[type="file"]{
  color:#dbcac1!important;
}

input[type="file"]::file-selector-button{
  background:#6e4937!important;
  color:#fff3eb!important;
  border:0!important;
  border-radius:999px!important;
  padding:8px 12px!important;
}

/* Editeurs WordPress/TinyMCE */
.cafe-news-rich-editor-wrap .wp-editor-wrap,
.cafe-forum-rich-editor-wrap .wp-editor-wrap{
  background:#1c1816!important;
  border-color:rgba(255,235,218,.12)!important;
}

.cafe-news-rich-editor-wrap .mce-toolbar-grp,
.cafe-forum-rich-editor-wrap .mce-toolbar-grp{
  background:#28211e!important;
  border-bottom-color:rgba(255,235,218,.08)!important;
}

/* --------------------------------------------------------------------------
   Boutons et petits éléments
   -------------------------------------------------------------------------- */

.btn-soft{
  background:rgba(38,31,28,.88)!important;
  color:#f6ece6!important;
  border-color:rgba(255,235,218,.09)!important;
}

.btn-primary{
  background:#744735!important;
  color:#fff5ef!important;
  border-color:#895942!important;
}

.btn-soft:hover,
.btn-primary:hover{
  filter:brightness(1.08);
}

/* Footer : texte constant, sans recoloration navigateur. */
.site-footer,
.site-footer a{
  color:#f0ddd2!important;
}

/* --------------------------------------------------------------------------
   Sécurité contre les changements de thème automatiques
   -------------------------------------------------------------------------- */

/*
 * Même si le navigateur annonce prefers-color-scheme:dark ou light,
 * on réaffirme exactement la même palette Café Sympa.
 */
@media(prefers-color-scheme:dark){
  :root{color-scheme:only light!important}
}

@media(prefers-color-scheme:light){
  :root{color-scheme:only light!important}
}



/* ==========================================================================
   v0.20.32 — zéro panneau blanc + contraste renforcé
   ========================================================================== */

:root{
  --cafe-ui-0:#151210;
  --cafe-ui-1:#1c1816;
  --cafe-ui-2:#241e1b;
  --cafe-ui-3:#302620;
  --cafe-ui-4:#3a2c25;
  --cafe-ui-5:#49362c;
  --cafe-ui-text:#f5ede8;
  --cafe-ui-soft:#d9c9c0;
  --cafe-ui-muted:#bba69a;
  --cafe-ui-caramel:#d29b74;
  --cafe-ui-caramel-2:#efc4a6;
  --cafe-ui-line:rgba(255,235,218,.10);
}

/* Base typographique */
.page-shell article,
.cafe-panel,
.cafe-forum,
.cafe-topic-page,
.cafe-actor-dashboard{
  color:var(--cafe-ui-text)!important;
}

.page-shell article h1,
.page-shell article h2,
.page-shell article h3,
.page-shell article h4,
.cafe-panel h1,
.cafe-panel h2,
.cafe-panel h3,
.cafe-panel h4{
  color:var(--cafe-ui-text)!important;
}

.page-shell article p,
.page-shell article li,
.page-shell article label,
.page-shell article small{
  color:var(--cafe-ui-soft)!important;
}

.page-shell article a:not(.btn),
.cafe-panel a:not(.btn){
  color:var(--cafe-ui-caramel-2)!important;
}

.cafe-kicker{
  background:rgba(116,71,53,.48)!important;
  color:#e7b38e!important;
  border:1px solid rgba(221,161,119,.10)!important;
}

/* Artwork */
.cafe-artwork-page-shell > .container{
  background:rgba(27,23,21,.90)!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-artwork-page-shell .cafe-public-head h1,
.cafe-artwork-page-shell .cafe-public-head h2{
  color:var(--cafe-ui-text)!important;
}

.cafe-artwork-page-shell .cafe-public-head > p{
  color:var(--cafe-ui-soft)!important;
  opacity:1!important;
}

.cafe-artwork-page-shell .cafe-art-card-v2,
.cafe-art-card-v2{
  background:rgba(30,25,23,.96)!important;
  border-color:var(--cafe-ui-line)!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-art-card-body{
  background:transparent!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-art-card-body h3,
.cafe-art-card-body strong{
  color:#f4ebe6!important;
}

.cafe-art-card-body p{
  color:var(--cafe-ui-soft)!important;
}

.cafe-art-modal-dialog{
  background:#1d1917!important;
  color:var(--cafe-ui-text)!important;
  border:1px solid var(--cafe-ui-line)!important;
}

.cafe-art-modal-info{
  background:#241e1b!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-art-modal-info h3{color:#f4ebe6!important}

.cafe-art-modal-close{
  background:#302620!important;
  color:#f7eee9!important;
  border:1px solid var(--cafe-ui-line)!important;
}

/* Résumé BD */
.cafe-bd-summary-card{
  background:#1c1816!important;
  color:var(--cafe-ui-text)!important;
  border-color:rgba(255,235,218,.12)!important;
}

.cafe-bd-summary-card h2{color:#f6eee9!important}

.cafe-bd-summary-meta span{
  background:#352923!important;
  color:#e2b28f!important;
}

.cafe-bd-summary-text{
  background:#241e1b!important;
  border-color:var(--cafe-ui-line)!important;
}

.cafe-bd-summary-text p{color:#e0d3cb!important}

.cafe-bd-summary-close{
  background:#302620!important;
  color:#eadcd4!important;
}

.cafe-bd-summary-close:hover,
.cafe-bd-summary-close:focus-visible{
  background:#49362c!important;
  color:#fff!important;
}

/* Popup Staff */
.cafe-staff-modal-card{
  background:
    radial-gradient(circle at 12% 12%,rgba(125,75,53,.17),transparent 30%),
    radial-gradient(circle at 92% 88%,rgba(80,61,52,.22),transparent 32%),
    #1c1816!important;
  border-color:rgba(218,160,119,.15)!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-staff-modal-portrait{
  background:linear-gradient(145deg,#2e2521,#191513)!important;
  border-color:#49372e!important;
}

.cafe-staff-modal-placeholder{background:#241e1b!important}

.cafe-staff-modal-content h3{color:#70d083!important}
.cafe-staff-modal-content > strong{color:#d4a07d!important}
.cafe-staff-modal-content > p{color:#e0d4cc!important}

.cafe-staff-modal-close{
  background:#151210!important;
  color:#eee2db!important;
  border:1px solid var(--cafe-ui-line)!important;
}

/* Annuaire */
.cafe-member-directory-card,
.cafe-directory-profile-preview,
.cafe-members-directory-empty,
.cafe-members-locked{
  background:#241e1b!important;
  color:var(--cafe-ui-text)!important;
  border-color:var(--cafe-ui-line)!important;
}

.cafe-member-directory-card:hover,
.cafe-member-directory-card:focus-visible{
  background:#302620!important;
  border-color:rgba(210,155,116,.28)!important;
}

.cafe-member-directory-avatar,
.cafe-directory-profile-preview img,
.cafe-directory-profile-preview > span{
  background:#302620!important;
  border-color:#5a4438!important;
}

.cafe-member-directory-name,
.cafe-directory-profile-preview strong{color:#f4ebe6!important}

.cafe-member-directory-role,
.cafe-directory-profile-preview small,
.cafe-members-directory-head p{color:var(--cafe-ui-soft)!important}

.cafe-members-directory-count{
  background:#3a2c25!important;
  color:#e1ab85!important;
}

.cafe-member-profile-card{
  background:#191513!important;
  color:var(--cafe-ui-text)!important;
  border-color:rgba(255,235,218,.12)!important;
}

.cafe-member-profile-portrait{
  background:
    radial-gradient(circle at 35% 30%,rgba(133,86,61,.18),transparent 43%),
    linear-gradient(145deg,#302620,#1b1715)!important;
}

.cafe-member-profile-portrait img,
.cafe-member-profile-portrait > span{
  background:#2c241f!important;
  border-color:#5a4438!important;
}

.cafe-member-profile-content h3{color:#f4ebe6!important}
.cafe-member-profile-content > strong{color:#d19a73!important}
.cafe-member-profile-bio p{color:#d9cbc3!important}

.cafe-member-profile-close{
  background:#302620!important;
  color:#eaddd6!important;
}

.cafe-member-profile-close:hover,
.cafe-member-profile-close:focus-visible{
  background:#49362c!important;
  color:#fff!important;
}

/* Mon compte */
.cafe-account-nav{
  background:#241e1b!important;
  border-color:var(--cafe-ui-line)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.18)!important;
}

.cafe-account-nav a{
  background:#302620!important;
  color:#eee2db!important;
}

.cafe-account-nav a:hover,
.cafe-account-nav a:focus-visible{
  background:#49362c!important;
  color:#fff!important;
}

.cafe-account-section,
.cafe-community-settings,
.cafe-my-publications,
.cafe-directory-profile-settings{
  background:rgba(28,24,22,.90)!important;
  border-color:var(--cafe-ui-line)!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-avatar-card{
  background:linear-gradient(145deg,#3a312d,#2b2421)!important;
  border-color:rgba(255,235,218,.12)!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-avatar-card h3,
.cafe-file-field,
.cafe-data dt{color:#f5ede8!important}

.cafe-avatar-card p,
.cafe-data dd,
.cafe-preference-toggle small,
.cafe-my-publication-list small{color:#cdbcb2!important}

.cafe-avatar-preview{
  background:linear-gradient(135deg,#3b2d26,#514034,#2d2824)!important;
}

.cafe-file-field input,
.cafe-file-field input[type="file"]{
  background:#211b18!important;
  color:#e5d8d0!important;
  border-color:rgba(225,180,145,.20)!important;
}

.cafe-file-field input[type="file"]::file-selector-button{
  background:#704934!important;
  color:#fff3eb!important;
}

.cafe-preference-toggle,
.cafe-my-publication-list article,
.cafe-my-news-row{
  background:#241e1b!important;
  color:var(--cafe-ui-text)!important;
  border-color:var(--cafe-ui-line)!important;
}

.cafe-text-button{color:#caa083!important}
.cafe-text-button:hover{color:#f0c7aa!important}

/* Espace Staff */
.cafe-actor-dashboard{
  background:rgba(28,24,22,.92)!important;
  border-color:var(--cafe-ui-line)!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-actor-hero h2{color:#f5ede8!important}
.cafe-actor-hero p{color:#d5c5bc!important}

.cafe-actor-action,
.cafe-actor-action:nth-child(2),
.cafe-actor-action:nth-child(3),
.cafe-actor-action:nth-child(4),
.cafe-actor-action:nth-child(5),
.cafe-actor-action-admin,
.cafe-actor-action-complaints{
  background:linear-gradient(145deg,#342923,#241e1b)!important;
  border-color:rgba(255,235,218,.09)!important;
  color:#f4ebe6!important;
  box-shadow:0 10px 24px rgba(0,0,0,.16)!important;
}

.cafe-actor-action:nth-child(2){background:linear-gradient(145deg,#3b3025,#261f1a)!important}
.cafe-actor-action:nth-child(3){background:linear-gradient(145deg,#302a2d,#211c1d)!important}
.cafe-actor-action:nth-child(4){background:linear-gradient(145deg,#293033,#1c2123)!important}
.cafe-actor-action:nth-child(5){background:linear-gradient(145deg,#29332e,#1c231f)!important}

.cafe-actor-action strong{color:#f7eee9!important}
.cafe-actor-action span:last-child{color:#cdbdb4!important}

.cafe-actor-action:hover{
  border-color:rgba(210,155,116,.26)!important;
  filter:brightness(1.08);
}

/* Forum */
.cafe-forum-thread-block{
  overflow:hidden!important;
  background:#1b1715!important;
  border:1px solid var(--cafe-ui-line)!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-forum-thread-block .cafe-topic-message,
.cafe-forum-thread-block .cafe-comment-list .comment-body{
  background:#211c19!important;
  color:#e8ddd6!important;
}

.cafe-forum-thread-block .cafe-replies{
  background:#1b1715!important;
  border-color:var(--cafe-ui-line)!important;
}

.cafe-forum-thread-block .cafe-replies > h2{
  background:#302620!important;
  color:#e6b38f!important;
  border-color:var(--cafe-ui-line)!important;
}

.cafe-forum-thread-block .cafe-comment-list > .comment + .comment,
.cafe-forum-thread-block .cafe-comment-list .children,
.cafe-forum-thread-block .cafe-comment-list .children .comment + .comment{
  border-color:var(--cafe-ui-line)!important;
}

.cafe-forum-thread-block .comment-content,
.cafe-forum-thread-block .comment-content p,
.cafe-forum-thread-block .cafe-topic-message,
.cafe-forum-thread-block .cafe-topic-message p{
  color:#e4d8d1!important;
}

.cafe-forum-thread-block .comment-meta,
.cafe-forum-thread-block .comment-meta a,
.cafe-forum-thread-block time{
  color:#bfa99c!important;
}

.cafe-forum-thread-block .cafe-reply-box{
  background:#241e1b!important;
  border-color:var(--cafe-ui-line)!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-forum-thread-block .cafe-reply-box h2,
.cafe-forum-thread-block .cafe-reply-box h3{
  color:#f4ebe6!important;
}

/* Accueil */
.home-whatsnew-body p{color:#d8c9c0!important}
.home-whatsnew-body .meta{color:#c89673!important}

.home-whatsnew-body h3,
.home-whatsnew-body h3 a{color:#f4ebe6!important}

.home-whatsnew-details,
.home-whatsnew-details span,
.home-whatsnew-details a{color:#d6c5bb!important}

.home-whatsnew-date-badge{
  background:#352923!important;
  color:#f1e7e1!important;
}

.home-whatsnew-pinned-badge{
  background:#3a2c25!important;
  color:#f0c4a4!important;
}

/* Cartes génériques restantes */
.card,
.home-forum-topic,
.cafe-event-card,
.cafe-bd-library-card,
.cafe-album-tile,
.cafe-cine-card,
.cafe-music-card,
.cafe-search-result,
.cafe-member-notification,
.cafe-complaint-review-card,
.cafe-complaint-empty{
  background:#241e1b!important;
  border-color:var(--cafe-ui-line)!important;
  color:var(--cafe-ui-text)!important;
}

.quick-link{
  background:linear-gradient(145deg,#342923,#211b18)!important;
  color:var(--cafe-ui-text)!important;
}

.cafe-staff-complaints{
  background:rgba(28,24,22,.92)!important;
  border-color:var(--cafe-ui-line)!important;
}

.cafe-alert,
.cafe-legal-summary > div{
  background:#302620!important;
  color:#eaded7!important;
  border-color:var(--cafe-ui-line)!important;
}

/* Inputs / éditeurs */
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
textarea,
select{
  background:#181513!important;
  color:#f4ebe6!important;
  border-color:rgba(255,235,218,.16)!important;
}

input::placeholder,
textarea::placeholder{color:#9e8d84!important}

.cafe-news-rich-editor-wrap .wp-editor-wrap,
.cafe-forum-rich-editor-wrap .wp-editor-wrap{
  background:#181513!important;
}

.cafe-news-rich-editor-wrap .mce-toolbar-grp,
.cafe-forum-rich-editor-wrap .mce-toolbar-grp{
  background:#2a221e!important;
}

.cafe-news-editor-help,
.cafe-forum-image-field > small{color:#bba89c!important}

.cafe-member-profile-bio,
.cafe-staff-modal-content > p,
.cafe-bd-summary-text{
  scrollbar-color:#6d4a38 #211b18;
}



/* ==========================================================================
   v0.20.33 — Gazette des Croquettes remplace tchat + forum
   ========================================================================== */

.cafe-gazette-page{
  width:100%;
  margin:0;
  padding:0;
  background:#1b1715;
}

.cafe-gazette-frame{
  display:block;
  width:100%;
  height:calc(100vh - 76px);
  min-height:720px;
  border:0;
  background:#d5c4b2;
}

.cafe-gazette-corner{
  position:fixed;
  left:16px;
  bottom:18px;
  z-index:1190;
}

.cafe-gazette-launcher{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:176px;
  padding:10px 14px 10px 11px;
  border:1px solid rgba(255,232,215,.16);
  border-radius:18px;
  background:rgba(37,28,24,.94);
  color:#f7e9df!important;
  box-shadow:0 12px 30px rgba(0,0,0,.24);
  text-decoration:none!important;
  font-weight:750;
  line-height:1.05;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  transition:transform .18s ease,background .18s ease;
}

.cafe-gazette-launcher:hover,
.cafe-gazette-launcher:focus-visible{
  transform:translateY(-3px);
  background:rgba(83,50,39,.97);
  color:#fff!important;
}

.cafe-gazette-launcher-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:13px;
  background:#f0dfc9;
  font-size:25px;
}

.cafe-gazette-launcher strong{
  color:#e5b28d;
}

@media(max-width:1000px){
  .cafe-gazette-frame{
    height:calc(100svh - 68px);
    min-height:620px;
  }
}

@media(max-width:600px){
  .cafe-gazette-corner{left:8px;bottom:10px}
  .cafe-gazette-launcher{
    min-width:0;
    padding:8px 10px;
    border-radius:15px;
    font-size:12px;
  }
  .cafe-gazette-launcher-icon{
    width:36px;height:36px;flex-basis:36px;font-size:21px
  }
}


/* ==========================================================================
   v0.20.34 — Axel -> Gazette / Akikazu -> règlement
   ========================================================================== */

/* Axel reprend sa place historique en bas à gauche et ouvre la Gazette. */
.cafe-gazette-axel-corner{
  pointer-events:none;
}

.cafe-gazette-axel-launcher{
  pointer-events:auto;
  text-decoration:none!important;
}

/* Akikazu garde exactement son emplacement réglé en v0.20.22. */
.cafe-regulation-launcher{
  pointer-events:auto;
}

/* Fenêtre du règlement */
.cafe-regulation-modal[hidden]{display:none!important}

.cafe-regulation-modal{
  position:fixed;
  inset:0;
  z-index:220;
  display:grid;
  place-items:center;
  padding:18px;
}

.cafe-regulation-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(10,8,8,.78);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}

.cafe-regulation-panel{
  position:relative;
  z-index:1;
  width:min(820px,100%);
  max-height:calc(100dvh - 28px);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  border:1px solid rgba(225,170,125,.24);
  border-radius:28px;
  background:linear-gradient(145deg,#201a17,#100e0d);
  box-shadow:0 32px 90px rgba(0,0,0,.55);
}

.cafe-regulation-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:17px 20px 13px;
  border-bottom:1px solid rgba(255,235,218,.09);
}

.cafe-regulation-head h2{
  margin:5px 0 0;
  color:#f6e9df;
  font-size:clamp(1.35rem,3vw,2rem);
}

.cafe-regulation-close{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:none;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  background:#352a25;
  color:#f4e5dc;
  font:900 1.65rem/1 sans-serif;
  cursor:pointer;
}

.cafe-regulation-close:hover,
.cafe-regulation-close:focus-visible{
  background:#704735;
  color:#fff;
}

.cafe-regulation-image-wrap{
  min-height:0;
  overflow:auto;
  padding:14px;
  background:radial-gradient(circle at 50% 0,rgba(0,190,255,.07),transparent 36%),#090b0e;
  scrollbar-color:#76513e #16110f;
}

.cafe-regulation-image-wrap img{
  display:block;
  width:min(100%,620px);
  height:auto;
  margin:0 auto;
  border-radius:16px;
}

body.cafe-regulation-open{overflow:hidden}

@media(max-width:700px){
  .cafe-regulation-modal{padding:8px}
  .cafe-regulation-panel{
    max-height:calc(100dvh - 16px);
    border-radius:20px;
  }
  .cafe-regulation-head{padding:12px 13px 10px}
  .cafe-regulation-image-wrap{padding:8px}
}


/* ==========================================================================
   v0.20.35 — Trombinoscope + réparation Axel
   ========================================================================== */

.cafe-trombinoscope-gallery{
  width:100%;
}

.cafe-trombinoscope-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:18px;
}

.cafe-trombinoscope-portrait{
  margin:0;
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:22px;
  background:#211b18;
  border:1px solid rgba(255,235,218,.10);
  box-shadow:0 14px 28px rgba(0,0,0,.18);
}

.cafe-trombinoscope-portrait img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .25s ease;
}

.cafe-trombinoscope-portrait:hover img{
  transform:scale(1.025);
}

.cafe-trombinoscope-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:220px;
  padding:26px;
  border-radius:24px;
  background:rgba(28,24,22,.88);
  color:#d9c9c0;
  border:1px solid rgba(255,235,218,.09);
  text-align:center;
}

.cafe-trombinoscope-empty span{
  font-size:2rem;
}

.cafe-trombinoscope-manager{
  background:rgba(28,24,22,.92)!important;
}

.cafe-trombinoscope-upload-form{
  margin-top:18px;
  padding:18px;
  border-radius:20px;
  background:#241e1b;
  border:1px solid rgba(255,235,218,.09);
}

.cafe-trombinoscope-upload-form input[type="file"]{
  display:block;
  width:100%;
  margin:9px 0 7px;
  padding:10px;
  border-radius:14px;
  background:#181513!important;
  color:#eadfd8!important;
  border:1px solid rgba(255,235,218,.12);
}

.cafe-trombinoscope-manager-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-top:22px;
}

.cafe-trombinoscope-manager-card{
  min-width:0;
  padding:12px;
  border-radius:20px;
  background:#241e1b;
  border:1px solid rgba(255,235,218,.09);
  box-shadow:0 10px 24px rgba(0,0,0,.14);
}

.cafe-trombinoscope-manager-image{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:15px;
  background:#171311;
}

.cafe-trombinoscope-manager-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.cafe-trombinoscope-manager-image span{
  position:absolute;
  left:8px;
  bottom:8px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(18,15,14,.86);
  color:#f6ece6;
  font-size:.75rem;
  font-weight:800;
}

.cafe-trombinoscope-order-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:10px 0;
}

.cafe-trombinoscope-order-actions form{
  margin:0;
}

.cafe-trombinoscope-order-actions .btn{
  width:100%;
  padding:8px 10px;
}

.cafe-trombinoscope-order-actions button:disabled{
  opacity:.35;
  cursor:not-allowed;
}

.cafe-trombinoscope-replace-form{
  display:grid;
  gap:7px;
  margin:0 0 8px;
}

.cafe-trombinoscope-replace-form input[type="file"]{
  width:100%;
  padding:7px;
  border-radius:12px;
  background:#181513!important;
  color:#d9c9c0!important;
  border:1px solid rgba(255,235,218,.10);
  font-size:.78rem;
}

.cafe-trombinoscope-replace-form .btn{
  width:100%;
  padding:8px 10px;
}

.cafe-trombinoscope-remove{
  width:100%;
  border:1px solid rgba(216,118,98,.20);
  border-radius:12px;
  padding:9px 10px;
  background:rgba(103,45,36,.36);
  color:#efb3a7;
  font-weight:800;
  cursor:pointer;
}

.cafe-trombinoscope-remove:hover,
.cafe-trombinoscope-remove:focus-visible{
  background:rgba(131,50,39,.55);
  color:#ffd7cf;
}

.cafe-trombinoscope-manager-empty{
  margin:18px 0 0;
  padding:18px;
  border-radius:18px;
  background:#241e1b;
  color:#bba69a;
  text-align:center;
}

@media(max-width:1180px){
  .cafe-trombinoscope-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  .cafe-trombinoscope-manager-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:850px){
  .cafe-trombinoscope-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
  }

  .cafe-trombinoscope-manager-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:560px){
  .cafe-trombinoscope-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }

  .cafe-trombinoscope-portrait{
    border-radius:16px;
  }

  .cafe-trombinoscope-manager-grid{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }

  .cafe-trombinoscope-manager-card{
    padding:9px;
    border-radius:16px;
  }
}



/* ==========================================================================
   v0.20.39 — Gazette directement sous la bannière de l'accueil.
   ========================================================================== */

.cafe-gazette-home[hidden],
.home-actors-section[hidden],
.home-whatsnew-section[hidden]{
  display:none!important;
}

body.home .cafe-gazette-home{
  padding:14px 0 42px;
  scroll-margin-top:98px;
}

body.home .cafe-gazette-home > .container{
  width:min(1460px,calc(100% - 32px))!important;
  max-width:none!important;
  margin-inline:auto!important;
}

.cafe-gazette-embed-shell{
  overflow:hidden;
  border:1px solid rgba(220,170,123,.45);
  border-radius:26px;
  background:#d5c4b2;
  box-shadow:0 18px 50px rgba(25,17,13,.25);
}

.cafe-gazette-embed-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:15px clamp(16px,3vw,30px);
  background:linear-gradient(110deg,#382920,#62402d);
  color:#f9efe3;
}

.cafe-gazette-embed-topbar h2{
  margin:0;
  color:#f9efe3;
  font-size:clamp(17px,2vw,25px);
  font-weight:850;
  line-height:1.2;
  letter-spacing:-.025em;
}

.cafe-gazette-back{
  flex:0 0 auto;
  padding:10px 15px;
  border:1px solid rgba(255,238,218,.4);
  border-radius:999px;
  background:rgba(255,248,234,.12);
  color:#fff1df;
  font-weight:800;
  cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.cafe-gazette-back:hover,
.cafe-gazette-back:focus-visible{
  background:rgba(255,248,234,.25);
  transform:translateY(-1px);
}

.cafe-gazette-home-frame{
  display:block;
  width:100%;
  height:clamp(760px,calc(100dvh - 115px),1240px);
  border:0;
  background:#d5c4b2;
}

.main-nav a[data-cafe-gazette-open][aria-current="page"]{
  background:rgba(198,143,103,.24);
  color:#fff4e4!important;
  box-shadow:inset 0 0 0 1px rgba(248,209,169,.35);
}

@media(max-width:700px){
  body.home .cafe-gazette-home{padding-top:8px;scroll-margin-top:90px}
  body.home .cafe-gazette-home > .container{width:calc(100% - 16px)!important}
  .cafe-gazette-embed-shell{border-radius:18px}
  .cafe-gazette-embed-topbar{flex-wrap:wrap;padding:13px 15px;gap:10px}
  .cafe-gazette-embed-topbar h2{font-size:18px}
  .cafe-gazette-back{padding:8px 12px;font-size:13px}
  .cafe-gazette-home-frame{height:max(590px,calc(100dvh - 140px))}
}


/* =======================================================================
   v0.20.40 — Gazette remplace TOUT l'accueil sous le menu de navigation.
   ======================================================================= */

body.home .cafe-gazette-home[hidden],
body.home .hero[hidden],
body.home .home-actors-section[hidden],
body.home .home-whatsnew-section[hidden] {
  display:none!important;
}

body.home.cafe-gazette-view-active {
  background:#d5c4b2!important;
}

body.home.cafe-gazette-view-active .site-footer,
body.home.cafe-gazette-view-active .cafe-complaint-corner,
body.home.cafe-gazette-view-active .cafe-regulation-corner,
body.home.cafe-gazette-view-active .cafe-gazette-corner {
  display:none!important;
}

body.home .cafe-gazette-home,
body.home .cafe-gazette-home.cafe-gazette-fullpage {
  display:block;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  scroll-margin-top:0!important;
  background:#d5c4b2!important;
}

body.home .cafe-gazette-home > .cafe-gazette-home-frame {
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-height:0!important;
  height:calc(100dvh - 76px);
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:hidden;
  background:#d5c4b2!important;
}

body.home .main-nav a[data-cafe-gazette-open][aria-current='page'] {
  background:rgba(198,143,103,.24)!important;
  color:#fff4e4!important;
  box-shadow:inset 0 0 0 1px rgba(248,209,169,.35)!important;
}

@media(max-width:1000px) {
  body.home .cafe-gazette-home > .cafe-gazette-home-frame {
    height:calc(100dvh - 70px);
  }
}


/* =======================================================================
   v0.20.41 — La Gazette occupe toute la hauteur de son contenu.
   Aucun parent ne doit limiter le défilement de la page. En cas de
   document externe, le défilement interne de l'iframe reste accessible.
   ======================================================================= */

body.home.cafe-gazette-view-active,
body.home.cafe-gazette-view-active #main-content,
body.home.cafe-gazette-view-active .cafe-gazette-home {
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}

body.home .cafe-gazette-home > .cafe-gazette-home-frame {
  height:max(860px,calc(100dvh - 76px));
  max-height:none!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch;
}

@media(max-width:1000px){
  body.home .cafe-gazette-home > .cafe-gazette-home-frame {
    height:max(670px,calc(100dvh - 70px));
  }
}


/* ========================================================================
   v0.20.42 — Invitation Discord : appel à l'action sur la page d'accueil.
   Aligné sous la grande bannière à côté du lien Second Life.
   ======================================================================== */

body.home .hero-actions .cafe-discord-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:13px 23px;
  min-height:51px;
  border:1px solid rgba(255,235,223,.72);
  border-radius:999px;
  background:linear-gradient(125deg,#ebaf9b 0%,#d58a7e 100%)!important;
  color:#442831!important;
  font-weight:850;
  letter-spacing:.01em;
  text-decoration:none!important;
  box-shadow:0 8px 24px rgba(111,57,54,.24), inset 0 1px 0 rgba(255,255,255,.3);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

body.home .hero-actions .cafe-discord-button:hover{
  transform:translateY(-3px);
  filter:brightness(1.035);
  box-shadow:0 13px 27px rgba(111,57,54,.31),inset 0 1px 0 rgba(255,255,255,.35);
}

body.home .hero-actions .cafe-discord-button:focus-visible{
  outline:3px solid #442831;
  outline-offset:3px;
  box-shadow:0 0 0 6px rgba(235,175,155,.65);
}

.cafe-discord-icon{
  display:block;
  width:24px;
  height:24px;
  flex:none;
}

.cafe-discord-external{
  font-size:1.05rem;
  line-height:1;
  font-weight:700;
  opacity:.85;
}

@media(max-width:620px){
  body.home .hero-actions .cafe-discord-button{
    width:100%;
    min-height:49px;
  }
}

@media(prefers-reduced-motion:reduce){
  body.home .hero-actions .cafe-discord-button{
    transition:none;
  }
  body.home .hero-actions .cafe-discord-button:hover{
    transform:none;
  }
}

/* v0.20.45 : bouton Discord rose pêche automnal, dégradé doux et texte prune contrasté. */


/* ==========================================================================
   v0.20.46 — Affiche du règlement seule (sans bloc, cadre ou bandeau)
   La fenêtre reste limitée à l’accueil. La page défile pour lire l’affiche.
   ========================================================================== */
.cafe-regulation-modal{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:clamp(14px,3vw,32px) clamp(12px,4vw,68px) 40px;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.cafe-regulation-backdrop{
  position:fixed;
  background:rgba(24,16,19,.76);
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
}
.cafe-regulation-panel{
  display:block;
  flex:0 0 auto;
  width:min(660px,100%);
  max-height:none;
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.cafe-regulation-image-wrap{
  min-height:auto;
  overflow:visible;
  padding:0;
  background:transparent;
}
.cafe-regulation-image-wrap img{
  width:100%;
  height:auto;
  margin:0;
  border-radius:0;
  filter:drop-shadow(0 12px 28px rgba(0,0,0,.24));
}
.cafe-regulation-close{
  position:fixed;
  z-index:3;
  top:clamp(12px,2vw,24px);
  right:clamp(12px,2vw,24px);
  width:46px;
  height:46px;
  border:1px solid rgba(255,236,225,.38);
  border-radius:50%;
  background:#6b3c42;
  color:#fff9f5;
  box-shadow:0 7px 25px rgba(0,0,0,.35);
}
.cafe-regulation-close:hover,
.cafe-regulation-close:focus-visible{
  background:#a95f66;
}
@media(max-width:700px){
  .cafe-regulation-modal{padding:65px 8px 24px;}
  .cafe-regulation-panel{max-height:none;border-radius:0;}
  .cafe-regulation-image-wrap{padding:0;}
}


/* ==========================================================================
   v0.20.47 — Affiche du règlement visible depuis son tout premier pixel
   Le menu du site est fixe et possède z-index:1000 sur ordinateur :
   la fenêtre doit être DEVANT ce menu, sinon le haut de l'affiche disparaît.
   ========================================================================== */
.cafe-regulation-modal:not([hidden]){
  z-index:20000;
  scroll-behavior:auto;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
}
