:root {
  --glch-pink: #bf5388;
  --glch-pink-light: #ef9fc7;
  --glch-ink: #070609;
  --glch-panel: #121016;
  --glch-panel-2: #1a151d;
  --glch-text: #fff8fc;
  --glch-muted: #c9bdc5;
  --glch-line: rgba(191, 83, 136, .35);
  --glch-role: var(--glch-pink);
  --glch-radius: 18px;
}

.glch-community-hub-page #main-content,
.glch-public-profile-page #main-content { background: var(--glch-ink); }
.glch-community-hub-page .entry-title,
.glch-community-hub-page .et_post_meta_wrapper { display: none !important; }
.glch-community-hub-page .container,
.glch-community-hub-page #left-area,
.glch-community-hub-page .et_pb_post { width: 100% !important; max-width: none !important; padding: 0 !important; }

.glch-hub { --gl-muted: var(--glch-muted); overflow: clip; }
.glch-hub :focus-visible,
.glch-profile :focus-visible,
.glch-showcase-editor :focus-visible { outline: 3px solid #ffd36a !important; outline-offset: 3px; }
.glch-hub [hidden] { display: none !important; }

.glch-hero {
  position: relative;
  min-height: min(700px, 70vh);
  padding: clamp(56px, 8vw, 110px) 0;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
}
.glch-hero::before {
  content: "";
  position: absolute;
  inset: 8% -15% auto 42%;
  height: 430px;
  background: radial-gradient(circle, rgba(191,83,136,.32), transparent 64%);
  filter: blur(10px);
  z-index: -1;
}
.glch-hero-copy { max-width: 900px; }
.glch-hero h1 { max-width: 800px !important; font-size: clamp(3.4rem, 8.5vw, 8rem) !important; letter-spacing: -.035em; }
.glch-hero p { max-width: 760px; color: var(--glch-text) !important; font-size: clamp(1.05rem, 1.8vw, 1.35rem) !important; }
.glch-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.glch-hero-actions a { min-height: 48px; }
.glch-hero-signal { min-width: 250px; padding: 34px; border: 1px solid var(--glch-line); background: rgba(10,8,11,.72); backdrop-filter: blur(14px); }
.glch-hero-signal span { display: block; color: var(--glch-pink-light); font-size: .65rem; letter-spacing: .22em; font-weight: 900; }
.glch-hero-signal strong { display: block; margin-top: 18px; color: #fff; font: 700 clamp(1.45rem, 3vw, 2.4rem)/1.15 Cinzel, Georgia, serif; }

.glch-hub [data-glch-section] { scroll-margin-top: 140px; }
.glch-hub .glsn-section-line { align-items: end; gap: 18px; }
.glch-hub .glsn-section-line p { max-width: 650px; margin: 8px 0 0; color: var(--glch-muted); }
.glch-hub .glsn-spotlight,
.glch-recommendations,
.glch-collections,
.glch-hub .glsn-directory,
.glch-hub .glsn-live { padding: clamp(48px, 7vw, 90px) 0; }

.glch-carousel { display: flex !important; grid-template-columns: none !important; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--glch-pink) transparent; padding: 4px 2px 20px; }
.glch-carousel > * { flex: 0 0 min(390px, 86vw); scroll-snap-align: start; }
.glch-carousel-controls { display: flex; gap: 8px; margin-left: auto; }
.glch-carousel-controls button { width: 46px; height: 46px; border: 1px solid var(--glch-line); background: #0c0a0d; color: #fff; border-radius: 50%; cursor: pointer; font-size: 1.2rem; }
.glch-carousel-controls button:hover { background: var(--glch-pink); }

.glch-hub .glsn-member-card { grid-template-columns: 84px 1fr; min-height: 280px; border-color: color-mix(in srgb, var(--glch-role) 55%, transparent); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.glch-hub .glsn-member-card:hover { transform: translateY(-4px); border-color: var(--glch-role); box-shadow: 0 24px 65px rgba(0,0,0,.35); }
.glch-hub .glsn-member-card::before { background: linear-gradient(90deg, var(--glch-role), transparent); }
.glch-hub .glsn-avatar { border-color: var(--glch-role); }
.glch-hub .glsn-member-role { color: color-mix(in srgb, var(--glch-role) 78%, white); }
.glch-role-auteurice { --glch-role: #bf5388; }
.glch-role-greymaker { --glch-role: #8d6dde; }
.glch-role-chroniqueureuse { --glch-role: #d69d45; }
.glch-role-lecteurice { --glch-role: #4f9a84; }
.glch-role-prestataire { --glch-role: #5d83c5; }
.glch-card-quote { grid-column: 1 / -1; margin: 8px 0 4px; color: #eee3e9; font: italic 1rem/1.5 Georgia, serif; }
.glch-place { display: inline-flex; margin-top: 9px; color: var(--glch-muted); font-size: .77rem; }
.glch-hub .glsn-card-actions { margin-top: auto; }
.glch-hub .glsn-card-actions a { min-height: 42px; }
.glch-discover-link { background: transparent !important; color: #fff !important; }

.glch-recommendation-grid,
.glch-collection-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.glch-recommendation-grid .glsn-member-card { grid-template-columns: 68px 1fr; min-height: 250px; padding: 20px; }
.glch-recommendation-grid .glsn-avatar-link { width: 64px; height: 64px; }
.glch-collection-card { min-height: 220px; display: flex; flex-direction: column; justify-content: end; padding: 26px; border: 1px solid var(--glch-line); border-radius: var(--glch-radius); color: #fff !important; text-decoration: none; background: linear-gradient(155deg, rgba(191,83,136,.27), #121016 62%); }
.glch-collection-card:hover { border-color: var(--glch-pink-light); transform: translateY(-3px); }
.glch-collection-card > span { color: var(--glch-pink-light); letter-spacing: .15em; font-size: .65rem; font-weight: 900; }
.glch-collection-card > strong { margin-top: 10px; font: 700 1.3rem Cinzel, Georgia, serif; }
.glch-collection-card p { color: var(--glch-muted); }

.glch-filter-shell { display: grid; grid-template-columns: .75fr 1fr 1fr auto; gap: 12px; align-items: end; margin: 0 0 30px; padding: 18px; border: 1px solid var(--glch-line); border-radius: 14px; background: #0c0a0d; }
.glch-filter-shell label { display: grid; gap: 7px; color: var(--glch-muted); font-size: .78rem; font-weight: 800; }
.glch-filter-shell input,
.glch-filter-shell select { min-height: 46px; width: 100%; padding: 0 12px; border: 1px solid rgba(255,255,255,.22); border-radius: 9px; background: #171219; color: #fff; }
.glch-filter-shell option { background: #171219; color: #fff; }
.glch-reset { min-height: 46px; padding: 0 15px; border: 1px solid var(--glch-line); border-radius: 9px; background: transparent; color: #fff; font-weight: 800; cursor: pointer; }
.glch-reset:hover { background: var(--glch-pink); }

.glch-empty { grid-column: 1 / -1; min-height: 190px; display: grid; place-items: center; align-content: center; gap: 8px; padding: 28px; border: 1px dashed var(--glch-line); border-radius: 16px; text-align: center; color: var(--glch-muted); background: rgba(255,255,255,.015); }
.glch-empty strong { color: #fff; font: 700 1.25rem Cinzel, Georgia, serif; }
.glch-empty a { margin-top: 10px; padding: 10px 15px; border: 1px solid var(--glch-pink); border-radius: 8px; color: #fff; text-decoration: none; font-weight: 800; }
.glch-rankings-details { margin: 40px 0 70px; border: 1px solid var(--glch-line); border-radius: 14px; background: #0c0a0d; }
.glch-rankings-details > summary { min-height: 62px; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 20px; color: #fff; cursor: pointer; font-weight: 900; }
.glch-rankings-details > summary span { color: var(--glch-muted); font-size: .78rem; font-weight: 600; }
.glch-rankings-details .glsn-rankings { padding: 28px 20px 34px; border-top: 1px solid var(--glch-line); }
.glch-hub .glsn-rank-grid { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }

.glch-profile .glsn-profile-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(40px, 6vw, 80px); border: 1px solid var(--glch-line); border-radius: 22px; background: linear-gradient(120deg, #171119, #080709); }
.glch-profile .glsn-profile-hero.has-glch-banner::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--glch-profile-banner) center/cover; opacity: .48; }
.glch-profile .glsn-profile-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7,6,9,.94), rgba(7,6,9,.55)); }
.glch-profile-quote { max-width: 680px; margin: 18px 0 0; color: #f5e9ef; font: italic 1.15rem/1.55 Georgia, serif; }
.glch-profile-place { display: inline-flex; margin-top: 12px; color: var(--glch-pink-light); font-size: .8rem; font-weight: 800; }
.glch-profile-interactions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.glch-profile-interactions a { min-height: 44px; display: inline-flex; align-items: center; padding: 9px 14px; border: 1px solid var(--glch-line); border-radius: 9px; color: #fff !important; text-decoration: none; font-weight: 800; }
.glch-profile-interactions a:hover { background: var(--glch-pink); }
.glch-reading-card > div { display: grid; gap: 5px; margin-top: 12px; padding: 15px; border-left: 3px solid var(--glch-pink); background: #0b090c; }
.glch-reading-card > div span { color: var(--glch-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; }
.glch-profile-collections > div { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
.glch-profile-collections article { padding: 16px; border: 1px solid var(--glch-line); border-radius: 10px; background: #0b090c; }
.glch-profile-collections p { margin-bottom: 0; color: var(--glch-muted); }
.glch-profile-more { max-width: 1400px; margin: 28px auto; padding: clamp(28px, 5vw, 55px); border: 1px solid var(--glch-line); border-radius: 18px; background: linear-gradient(135deg, rgba(191,83,136,.2), #121016); color: #fff; }
.glch-profile-more h2 { font-family: Cinzel, Georgia, serif; color: #fff; }
.glch-profile-more p { color: var(--glch-muted); }
.glch-profile-more a { display: inline-flex; padding: 11px 16px; border-radius: 9px; background: var(--glch-pink); color: #fff; text-decoration: none; font-weight: 900; }

.glch-showcase-editor { max-width: 1400px; margin: 25px auto; padding: clamp(24px, 4vw, 42px); border: 1px solid var(--glch-line); border-radius: 18px; background: #121016; color: #fff; }
.glch-showcase-editor h2 { font-family: Cinzel, Georgia, serif; color: #fff; }
.glch-showcase-editor > p { color: var(--glch-muted); }
.glch-editor-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 24px 0; }
.glch-editor-grid label { display: grid; gap: 7px; font-weight: 800; }
.glch-editor-grid label > span { color: var(--glch-muted); font-size: .78rem; font-weight: 500; }
.glch-editor-grid input,
.glch-editor-grid textarea { width: 100%; min-height: 46px; padding: 11px 12px; border: 1px solid var(--glch-line); border-radius: 8px; background: #09080a; color: #fff; }
.glch-wide { grid-column: 1 / -1; }
.glch-showcase-editor fieldset { margin: 0 0 22px; padding: 18px; border: 1px solid var(--glch-line); border-radius: 10px; }
.glch-block-picker { display: flex; flex-wrap: wrap; gap: 14px 22px; }
.glch-block-picker label { display: inline-flex; gap: 7px; align-items: center; }

@media (max-width: 1100px) {
  .glch-hero { min-height: 560px; }
  .glch-hero-signal { display: none; }
  .glch-recommendation-grid, .glch-collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .glch-filter-shell { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
  .glch-hero { min-height: 520px !important; padding: 54px 0 44px !important; }
  .glch-hero h1 { font-size: clamp(3rem, 17vw, 5rem) !important; }
  .glch-hero-actions, .glch-hero-actions a { width: 100%; }
  .glch-hero-actions a { justify-content: center; }
  .glch-recommendation-grid, .glch-collection-grid, .glch-filter-shell, .glch-editor-grid, .glch-profile-collections > div { grid-template-columns: 1fr; }
  .glch-filter-shell { padding: 14px; }
  .glch-hub .glsn-member-card { grid-template-columns: 66px 1fr; padding: 18px; }
  .glch-hub .glsn-avatar-link { width: 62px; height: 62px; }
  .glch-carousel-controls { display: none; }
  .glch-rankings-details > summary { align-items: flex-start; flex-direction: column; }
  .glch-profile .glsn-profile-hero { padding: 28px 18px; }
  .glch-profile-interactions { display: grid; }
  .glch-profile-interactions a { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .glch-hub *, .glch-profile * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

