/* CLUBE18 v2.8.1 — Gradientes editoriais reforçados conforme referência do usuário.
   Os gradientes têm múltiplas paradas visíveis e textura suave no fundo.
   Compatível com [clube18_modelos] e com os mesmos cards/links/idade.
   Derivações de cor só neste arquivo, não alteram tokens globais.
   Anterior: CLUBE18 v2.7.9 — Catálogo editorial premium baseado na referência fornecida.
   Escopo exclusivo de [clube18_modelos]; preserva os atributos dos filtros e idade.
   Champanhe é detalhe estético solicitado; vermelho/rosa continua estado bloqueado. */
.g18-models-showcase.c18-public-models {
  --c18-champagne: #E6CDB0;
  --c18-champagne-light: #F3DFC6;
  --c18-champagne-dark: #A98F72;
  --c18-cat-deep: #0B101D;
  --c18-cat-ink: #111522;
  --c18-cat-pink-glow: #FFA2B9;
  --c18-cat-pink-mid: #FC4D77;
  --c18-cat-pink-base: #F73568;
  --c18-cat-cream-glow: #FFF1DE;
  --c18-cat-cream-mid: #E6CDB0;
  --c18-cat-cream-deep: #C6A485;
  background: var(--c18-cat-deep);
  border-color: var(--c18-line-subtle);
  border-radius: 20px;
  box-shadow: 0 24px 56px var(--c18-shadow-color);
}
.g18-models-showcase.c18-public-models .g18-models-shell {
  background:
    radial-gradient(ellipse at 12% 0%, rgba(247,53,104,.17) 0%, rgba(247,53,104,.035) 24%, transparent 58%),
    radial-gradient(ellipse at 88% 54%, rgba(230,205,176,.07) 0%, transparent 52%),
    repeating-linear-gradient(135deg, transparent 0, transparent 5px, rgba(255,255,255,.013) 6px, transparent 7px),
    linear-gradient(180deg, #141725 0%, var(--c18-cat-deep) 55%, #0A0E19 100%);
}
.g18-models-showcase.c18-public-models .g18-models-hero {
  min-height: 285px;
  background:
    radial-gradient(ellipse at 9% 11%, rgba(247,53,104,.17) 0%, transparent 58%),
    radial-gradient(ellipse at 93% 11%, rgba(230,205,176,.1) 0%, transparent 54%),
    linear-gradient(144deg, #221825 0%, var(--c18-cat-ink) 49%, var(--c18-cat-deep) 100%);
  border-color: var(--c18-line-subtle);
}
.g18-models-showcase.c18-public-models .g18-models-copy { padding: clamp(23px,4vw,56px); }
.g18-models-showcase.c18-public-models .g18-models-kicker {
  color: var(--c18-primary-hover);
  font-size: 11px;
  letter-spacing:.15em;
}
.g18-models-showcase.c18-public-models .g18-models-title {
  max-width: 12ch;
  font-family:Baskerville, "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  font-weight:700;
  letter-spacing:-.055em;
  text-shadow:0 4px 24px var(--c18-shadow-color);
}
.g18-models-showcase.c18-public-models .g18-models-title em { display:block; color:var(--c18-primary-hover); font-style:italic; font-weight:700; }
.g18-models-showcase.c18-public-models .g18-models-summary { font-size:clamp(13px,1.3vw,15px); }
.g18-models-showcase.c18-public-models .g18-models-explore {
  background:linear-gradient(150deg,var(--c18-surface-raised),var(--c18-surface));
  border-color:var(--c18-line-subtle);
  box-shadow:0 6px 16px var(--c18-shadow-color);
}
.g18-models-showcase.c18-public-models .g18-models-explore:hover { border-color:var(--c18-champagne); }
.g18-models-showcase.c18-public-models .g18-models-hero-art {
  background:radial-gradient(circle at 50% 50%,rgba(230,205,176,.08),transparent 70%);
}
.g18-models-showcase.c18-public-models .g18-models-orbits { stroke:var(--c18-champagne); opacity:.38; }
.g18-models-showcase.c18-public-models .g18-models-art-monogram { color:var(--c18-champagne); opacity:.56; }
.g18-models-showcase.c18-public-models .g18-models-collection-header {
  border-bottom:1px solid var(--c18-border-control);
  margin-bottom:20px;
}
.g18-models-showcase.c18-public-models .g18-models-collection-heading h3 { font-weight:790; letter-spacing:-.05em; }
.g18-models-showcase.c18-public-models .g18-portrait-grid { gap:clamp(12px,2.6vw,24px); }
.g18-models-showcase.c18-public-models .g18-portrait-card {
  aspect-ratio: 3 / 4.5;
  border-radius:19px;
  background:var(--c18-surface);
  border:1px solid var(--c18-line-subtle);
  box-shadow:0 18px 32px var(--c18-shadow-color);
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.g18-models-showcase.c18-public-models .g18-portrait-card.g18-portrait-is-open {
  border-color:var(--c18-champagne-dark);
  box-shadow:0 0 0 1px rgba(230,205,176,.14),0 20px 35px var(--c18-shadow-color);
}
.g18-models-showcase.c18-public-models .g18-portrait-photo img { object-position:center 26%; }
.g18-models-showcase.c18-public-models .g18-portrait-gradient {
  background:
    linear-gradient(180deg,rgba(8,11,20,.28) 0%,transparent 19%,rgba(8,11,20,.04) 35%,rgba(8,11,20,.42) 52%,rgba(8,11,20,.83) 70%,rgba(8,11,20,.98) 100%);
  opacity:1;
}
.g18-models-showcase.c18-public-models .g18-portrait-state {
  background:rgba(16,18,27,.89);
  border:1px solid var(--c18-border-control);
  color:var(--c18-text-muted);
  backdrop-filter:blur(12px);
  font-weight:750;
  font-size:12px;
  padding:7px 12px;
  min-height:34px;
  box-shadow:0 6px 16px var(--c18-shadow-color);
}
.g18-models-showcase.c18-public-models .g18-portrait-state-open {
  background:linear-gradient(120deg,var(--c18-champagne-light),var(--c18-champagne));
  border-color:var(--c18-champagne-light);
  color:var(--c18-cat-deep);
}
.g18-models-showcase.c18-public-models .g18-portrait-state-open svg { stroke:var(--c18-cat-deep); }
.g18-models-showcase.c18-public-models .g18-portrait-state-locked {
  color:var(--c18-primary-hover);
  border-color:var(--c18-primary);
}
.g18-models-showcase.c18-public-models .g18-portrait-content { gap:9px; padding:clamp(11px,1.6vw,18px); }
.g18-models-showcase.c18-public-models .g18-portrait-copy h3 { font-weight:800; text-shadow:0 2px 13px var(--c18-overlay); }
.g18-models-showcase.c18-public-models .g18-portrait-counts { color:var(--c18-text-muted); gap:11px; }
.g18-models-showcase.c18-public-models .g18-portrait-cta {
  background-color:var(--c18-cat-cream-mid);
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.36) 0%,transparent 43%,rgba(77,41,20,.12) 100%),
    linear-gradient(115deg,var(--c18-cat-cream-glow) 0%,var(--c18-cat-cream-mid) 48%,var(--c18-cat-cream-deep) 100%);
  border:1px solid var(--c18-champagne-dark);
  border-radius:11px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68),inset 0 -3px 0 rgba(81,61,40,.22),0 7px 16px var(--c18-shadow-color);
  color:var(--c18-cat-deep);
  font-weight:780;
  min-height:47px;
}
.g18-models-showcase.c18-public-models .g18-portrait-cta:hover { filter:brightness(1.06); color:var(--c18-cat-deep); }
.g18-models-showcase.c18-public-models .g18-portrait-is-locked .g18-portrait-cta {
  background-color:var(--c18-primary);
  background-image:
    linear-gradient(180deg,rgba(255,255,255,.28) 0%,transparent 36%,rgba(93,14,42,.1) 100%),
    linear-gradient(115deg,var(--c18-cat-pink-glow) 0%,var(--c18-cat-pink-mid) 47%,var(--c18-cat-pink-base) 100%);
  border-color:var(--c18-primary);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42),inset 0 -3px 0 rgba(109,12,42,.19),0 7px 16px var(--c18-shadow-color);
  color:var(--c18-on-primary);
}
.g18-models-showcase.c18-public-models .g18-portrait-is-locked .g18-portrait-cta:hover { filter:brightness(1.06); color:var(--c18-on-primary); }
@media (hover:hover) and (pointer:fine) {
  .g18-models-showcase.c18-public-models .g18-portrait-card:hover { transform:translateY(-3px); }
  .g18-models-showcase.c18-public-models .g18-portrait-is-open:hover { border-color:var(--c18-champagne-light); }
}
@media (max-width: 640px) {
  .g18-models-showcase.c18-public-models { border-radius:15px; }
  .g18-models-showcase.c18-public-models .g18-models-hero { grid-template-columns:1fr; min-height:0; }
  .g18-models-showcase.c18-public-models .g18-models-copy { min-height:240px; padding:22px 16px 24px; }
  .g18-models-showcase.c18-public-models .g18-models-hero-art { display:none; }
  .g18-models-showcase.c18-public-models .g18-portrait-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    padding-inline:10px;
  }
  .g18-models-showcase.c18-public-models .g18-portrait-card { border-radius:13px; aspect-ratio:3 / 5.7; }
  .g18-models-showcase.c18-public-models .g18-portrait-gradient {
    background:linear-gradient(180deg,rgba(8,11,20,.29) 0%,transparent 20%,rgba(8,11,20,.15) 40%,rgba(8,11,20,.62) 60%,rgba(8,11,20,.94) 80%,rgba(8,11,20,.99) 100%);
  }
  .g18-models-showcase.c18-public-models .g18-portrait-state { top:7px;left:7px;max-width:calc(100% - 14px);padding:5px 7px;font-size:10px;min-height:28px; }
  .g18-models-showcase.c18-public-models .g18-portrait-state svg { width:12px;height:12px; }
  .g18-models-showcase.c18-public-models .g18-portrait-content { gap:6px;padding:9px; }
  .g18-models-showcase.c18-public-models .g18-portrait-copy h3 { font-size:clamp(15px,4.1vw,20px); }
  .g18-models-showcase.c18-public-models .g18-portrait-counts { gap:6px; }
  .g18-models-showcase.c18-public-models .g18-portrait-counts > span { font-size:10px;gap:2px; }
  .g18-models-showcase.c18-public-models .g18-portrait-counts svg { width:11px;height:11px; }
  .g18-models-showcase.c18-public-models .g18-portrait-cta { padding:9px 7px;min-height:44px;font-size:12px; }
  .g18-models-showcase.c18-public-models .g18-portrait-cta svg { width:15px;height:15px;flex:none; }
}
@media (max-width: 360px) {
  .g18-models-showcase.c18-public-models .g18-portrait-counts > span { font-size:9px; }
  .g18-models-showcase.c18-public-models .g18-portrait-counts { gap:5px; }
}
@media (prefers-reduced-motion:reduce) {
  .g18-models-showcase.c18-public-models .g18-portrait-card { transition:none;transform:none; }
}


/* CLUBE18 v2.8.2 — catálogo em largura total da tela (WordPress / Elementor).
   As regras são exclusivas de [clube18_modelos]; não alteram o layout das galerias.
   O descolamento horizontal ignora o max-width e o padding do contêiner do tema.
   A altura mínima mantém o fundo escuro mesmo com poucos perfis cadastrados. */
.g18-models-showcase.c18-public-models {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  width: 100dvw;
  max-width: none;
  min-height: 100vh;
  min-height: 100svh;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.g18-models-showcase.c18-public-models > .g18-models-shell {
  min-height: 100vh;
  min-height: 100svh;
}
.g18-models-showcase.c18-public-models .g18-models-collection-heading h3 {
  margin-top: 0;
}
/* Mantém o entorno da página escuro e libera o bleed mesmo dentro do Elementor.
   :has() é suportado em versões atuais de Chrome/Android, Safari e Firefox. */
@supports selector(body:has(.g18-models-showcase)) {
  body:has(.g18-models-showcase.c18-public-models) {
    background-color: #0b101d;
    overflow-x: clip;
  }
  body:has(.g18-models-showcase.c18-public-models)
    :is(.site-main, .site-content, .entry-content):has(.g18-models-showcase.c18-public-models) {
    background-color: #0b101d;
  }
  body:has(.g18-models-showcase.c18-public-models)
    :is(.site-main, .site-content, .entry-content, .elementor, .elementor-section,
        .elementor-container, .elementor-widget-wrap, .e-con, .e-con-inner,
        .elementor-widget-shortcode, .elementor-widget-container, .elementor-shortcode):has(.g18-models-showcase.c18-public-models) {
    overflow: visible;
  }
  body:has(.g18-models-showcase.c18-public-models)
    :is(.entry-content, .elementor-widget-shortcode, .elementor-widget-container, .elementor-shortcode):has(.g18-models-showcase.c18-public-models) {
    margin-block: 0;
  }
}
@media (max-width: 767px) {
  .g18-models-showcase.c18-public-models { border-radius: 0; }
  .g18-models-showcase.c18-public-models .g18-models-hero { margin-top: 0; }
  .g18-models-showcase.c18-public-models .g18-models-collection-header { margin-inline: 16px; }
  .g18-models-showcase.c18-public-models .g18-portrait-grid {
    padding-inline: 12px;
  }
  @supports selector(body:has(.g18-models-showcase)) {
    body:has(.g18-models-showcase.c18-public-models)
      :is(.site-main, .entry-content, .elementor-section,
          .elementor-container, .elementor-widget-wrap, .e-con, .e-con-inner,
          .elementor-widget-shortcode, .elementor-widget-container, .elementor-shortcode):has(.g18-models-showcase.c18-public-models) {
      padding-block: 0;
    }
  }
}


/* CLUBE18 v2.8.3 — três filtros no catálogo, sem deslocar o viewport. */
.g18-models-showcase.c18-public-models .g18-models-filter-bar[hidden],
.g18-models-showcase.c18-public-models .g18-models-filter-empty[hidden],
.g18-models-showcase.c18-public-models .g18-portrait-card[hidden] { display: none !important; }
.g18-models-showcase.c18-public-models .g18-models-filter-bar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 0 clamp(16px, 3vw, 28px);
  margin: 0 0 20px;
  min-width: 0;
}
.g18-models-showcase.c18-public-models .g18-models-filter {
  appearance: none;
  -webkit-appearance: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid rgba(230, 205, 176, .20);
  border-radius: 13px;
  background: linear-gradient(145deg, rgba(37,39,55,.94), rgba(17,21,34,.94));
  color: #d8d7df;
  font: inherit;
  font-size: 13px;
  font-weight: 740;
  line-height: 1.22;
  letter-spacing: 0;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.g18-models-showcase.c18-public-models .g18-models-filter .g18-models-filter-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 23px;
  height: 23px;
  padding: 0 5px;
  border-radius: 99px;
  background: rgba(255,255,255,.09);
  color: inherit;
  font-size: 11px;
  font-weight: 800;
}
.g18-models-showcase.c18-public-models .g18-models-filter.is-active {
  border-color: #f35a80;
  background: linear-gradient(115deg, #ff8ca7 0%, #fc4d77 58%, #ed2a61 100%);
  color: #170f1b;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 8px 18px rgba(238,41,96,.16);
}
.g18-models-showcase.c18-public-models .g18-models-filter.is-active .g18-models-filter-count { background: rgba(20,15,23,.15); }
.g18-models-showcase.c18-public-models .g18-models-filter:focus-visible {
  outline: 3px solid #f3dfc6;
  outline-offset: 2px;
}
.g18-models-showcase.c18-public-models .g18-models-filter-empty {
  margin: 0 clamp(16px, 3vw, 28px) 20px;
  padding: 32px 20px;
  border: 1px dashed rgba(230,205,176,.28);
  border-radius: 16px;
  background: rgba(18,21,32,.8);
  color: #f2e9ec;
  text-align: center;
}
.g18-models-showcase.c18-public-models .g18-models-filter-empty strong { display: block; font-size: 17px; }
.g18-models-showcase.c18-public-models .g18-models-filter-empty p { color: #b7b4c3; font-size: 13px; margin: 9px 0 0; }
@media (max-width: 640px) {
  .g18-models-showcase.c18-public-models .g18-models-filter-bar {
    gap: 6px;
    padding-inline: 12px;
    margin-bottom: 16px;
  }
  .g18-models-showcase.c18-public-models .g18-models-filter {
    flex-direction: column;
    gap: 5px;
    min-height: 67px;
    padding: 8px 4px;
    border-radius: 10px;
    font-size: clamp(10px, 2.75vw, 12px);
    line-height: 1.18;
    overflow-wrap: break-word;
  }
  .g18-models-showcase.c18-public-models .g18-models-filter .g18-models-filter-count {
    min-width: 21px;
    height: 19px;
    font-size: 10px;
  }
  .g18-models-showcase.c18-public-models .g18-models-filter-empty { margin-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .g18-models-showcase.c18-public-models .g18-models-filter { transition: none; }
}
