/* Model cards */

.ff-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap:14px;
}
@media (max-width: 1100px){.ff-grid{grid-template-columns: repeat(3, minmax(0,1fr));}}
@media (max-width: 760px){.ff-grid{grid-template-columns: repeat(2, minmax(0,1fr));}}

/* Two-column grids for /models/, /top/ and tag pages (and selected rubrics) */
body.post-type-archive-model .ff-grid,
body.page-template-page-top .ff-grid,
body.page-template-page-top-php .ff-grid,
body.tag .ff-grid,
body.tax-post_tag .ff-grid,
.ff-grid--twoCol{
  grid-template-columns: repeat(2, minmax(0,1fr));
}
@media (max-width: 1100px){
  body.post-type-archive-model .ff-grid,
  body.page-template-page-top .ff-grid,
  body.page-template-page-top-php .ff-grid,
  body.tag .ff-grid,
  body.tax-post_tag .ff-grid,
  .ff-grid--twoCol{
    grid-template-columns: 1fr;
  }
}


.ff-modelcard{
  display:block;
  overflow:hidden;
  border-radius:var(--ff-radius);
  border:1px solid var(--ff-border);
  background: linear-gradient(180deg, rgba(255,255,255,.085), rgba(255,255,255,.04));
  box-shadow: var(--ff-shadow2);
  text-decoration:none;
  color:var(--ff-txt);
}
.ff-modelcard:hover{text-decoration:none; filter:brightness(1.05)}

.ff-modelcard__cover{
  position:relative;
  aspect-ratio: 16 / 9;
  background:
    radial-gradient(400px 220px at 20% 20%, rgba(255,79,216,.12), transparent 60%),
    radial-gradient(400px 220px at 80% 10%, rgba(255,79,216,.10), transparent 60%),
    rgba(255,255,255,.03);
  background-size:cover;
  background-position:center;
}
.ff-modelcard__coverOverlay{
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.45));
}

/* /top/ rank badge (crown + 1..5) */
.ff-modelcard__rank{
  position:absolute;
  right:10px;
  top:10px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.25);
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 24px rgba(0,0,0,.25);
  color: var(--ff-accent2);
  font-weight:900;
  z-index:3;
}
.ff-modelcard__rank i{font-size:14px;}
.ff-modelcard__rankNum{font-size:12px; line-height:1;}

.ff-modelcard__body{display:flex; gap:10px; align-items:center; padding:12px}
.ff-modelcard__avatar{width:48px; height:48px; border-radius:999px; overflow:hidden; border:1px solid var(--ff-border); background: rgba(0,0,0,.25)}
.ff-avatarFallback{width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-weight:700; color: rgba(255,255,255,.85)}

.ff-modelcard__name{font-weight:700; display:flex; align-items:center; gap:6px}
.ff-modelcard__user{color:var(--ff-muted); font-size:13px; margin-top:2px}

/* Single model */
.ff-model{display:flex; flex-direction:column; gap:14px}
.ff-model__hero{overflow:hidden; border-radius:var(--ff-radius2); border:1px solid var(--ff-border); background: rgba(255,255,255,.06); box-shadow: var(--ff-shadow2)}
.ff-model__cover{height:220px; background:#111; background-size:cover; background-position:center; position:relative}
.ff-model__coverOverlay{position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.20), rgba(0,0,0,.65))}
.ff-coverStats{position:absolute; top:12px; right:12px; display:flex; gap:8px; z-index:2}
.ff-coverStat{display:flex; align-items:center; gap:6px; padding:8px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.16); background: rgba(0,0,0,.35); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); color: rgba(255,255,255,.92); font-weight:800; font-size:13px; line-height:1}
.ff-coverStat svg{opacity:.95}
.ff-coverStat__num{display:inline-block; min-width: 1ch}
.ff-model__head{display:flex; gap:14px; padding:14px; align-items:flex-end}
.ff-model__avatar{width:96px; height:96px; border-radius:999px; overflow:hidden; border:1px solid var(--ff-border); background: rgba(0,0,0,.25); margin-top:-58px; position:relative; z-index:2}
.ff-model__avatar img{width:96px; height:96px; object-fit:cover}
.ff-model__title{flex:1}
.ff-model__name{font-size:22px; font-weight:800; display:flex; align-items:center; gap:6px}
.ff-model__username{color:var(--ff-muted); margin-top:4px}
.ff-model__actions{display:flex; gap:10px; flex-wrap:wrap}
.ff-socials{display:flex; gap:10px; align-items:center; justify-content:flex-end}
.ff-socialCircle{
  width:38px;
  height:38px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.25);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: rgba(255,255,255,.92);
  text-decoration:none;
  transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.ff-socialCircle:hover{
  text-decoration:none;
  border-color: rgba(255,79,216,.75);
  background: rgba(255,79,216,.10);
  box-shadow: 0 0 0 2px rgba(255,79,216,.22), 0 12px 28px rgba(0,0,0,.35);
  transform: translateY(-1px);
}
.ff-socialCircle:focus-visible{
  outline:none;
  border-color: rgba(255,79,216,.90);
  box-shadow: 0 0 0 3px rgba(255,79,216,.30), 0 12px 28px rgba(0,0,0,.35);
}
.ff-socialCircle i{font-size:18px}
.ff-socialCircle__txt{font-weight:900; font-size:12px; letter-spacing:.4px}
.ff-socialCircle__img{width:18px; height:18px; display:block; object-fit:contain; opacity:.92}
.ff-model__stats{display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:10px; padding:0 14px 14px}
.ff-stat{padding:12px; border-radius:16px; border:1px solid var(--ff-border); background: rgba(255,255,255,.04)}
.ff-stat__label{font-size:12px; color:var(--ff-muted)}
.ff-stat__value{font-size:16px; font-weight:700; margin-top:2px}
.ff-model__bio{padding:14px}
.ff-model__meta{display:grid; grid-template-columns: 1fr; gap:14px}
.ff-links{display:flex; flex-wrap:wrap; gap:10px}
.ff-linkpill{padding:10px 12px; border-radius:999px; border:1px solid var(--ff-border); background: rgba(255,255,255,.04); color:var(--ff-txt); text-decoration:none}
.ff-linkpill:hover{text-decoration:none; filter:brightness(1.06)}

@media (max-width: 980px){
  .ff-model__cover{height:170px}
  .ff-coverStats{top:10px; right:10px; gap:6px}
  .ff-coverStat{padding:7px 9px; font-size:12px}
  .ff-model__head{align-items:center; flex-wrap:wrap; row-gap:10px}
  .ff-model__actions{flex:0 0 100%; justify-content:flex-end}
  .ff-model__avatar{width:80px; height:80px; margin-top:-46px}
  .ff-model__avatar img{width:80px; height:80px}
  .ff-model__stats{grid-template-columns: 1fr 1fr}
}

/* Carousel (recommended models) */
.ff-carousel__controls{display:flex; justify-content:flex-end; gap:8px; margin-bottom:10px}
.ff-carousel__track,
.ff-carousel{
  display:flex;
  gap:12px;
  overflow:auto;
  padding-bottom:6px;
  scrollbar-gutter: stable;
}
.ff-carousel__track::-webkit-scrollbar,
.ff-carousel::-webkit-scrollbar{height:8px}
.ff-carousel__track::-webkit-scrollbar-thumb,
.ff-carousel::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18); border-radius:999px}
.ff-carousel .ff-modelcard{min-width:220px; flex:0 0 auto}

/* Recommended mini-cards on model profile: 2x2 on desktop, 2x1 on mobile/tablet */
.ff-carousel--reco{
  display:grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  grid-auto-columns: calc((100% - 12px) / 2);
  gap:12px;
  /* Only horizontal scrolling; prevent a vertical scrollbar gutter on desktop
     that makes the right padding look wider than the left. */
  overflow-x:auto;
  overflow-y:hidden;
  padding-bottom:6px;
  scrollbar-gutter: auto;
}
.ff-carousel--reco .ff-modelcard{min-width:0; width:100%}
.ff-carousel--reco .ff-badge--featured{left:auto; right:10px}

/* Desktop: keep "Рекомендуем" section visually neutral (no extra background/padding) */
@media (min-width: 981px){
  .ff-recoSection{
    padding:0;
    border:0;
    border-radius:0;
    background:none;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .ff-recoSection .ff-section__head{margin-bottom:10px}
  .ff-recoSection .ff-carousel--reco{padding-bottom:0}
}


@media (max-width: 980px){
  .ff-carousel--reco{grid-auto-columns: 100%;}
}

.ff-pagination{margin-top:18px; display:flex; justify-content:center}
.ff-pagination .page-numbers{display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:34px; padding:0 10px; border-radius:12px; border:1px solid var(--ff-border); margin:0 4px; color:var(--ff-txt); text-decoration:none; background: rgba(255,255,255,.04)}
.ff-pagination .current{border-color: rgba(255,79,216,.35); color: var(--ff-accent)}

/* Side blocks */
.ff-side{display:flex; flex-direction:column; gap:14px}
.ff-side__block{padding:12px}
.ff-side__title{font-weight:700; margin-bottom:10px}
.ff-side__title i{margin-right:8px; color:var(--ff-accent2); font-size:14px;}

.ff-side__sub{margin-top:10px; margin-bottom:8px; font-size:12px; color:var(--ff-muted); letter-spacing:.3px; text-transform:uppercase}
.ff-side__links{display:flex; flex-wrap:wrap; gap:10px}
/* Side links should NOT have a permanent outline/border. Highlight is done on hover via background/shadow. */
.ff-side__links a{padding:6px 8px; border-radius:999px; border:none; background: rgba(255,255,255,.03); color:var(--ff-txt); text-decoration:none !important}
.ff-side__taxName{font-weight:600; margin:14px 0 8px}
.ff-ctaStack{display:flex; flex-direction:column; gap:10px}
.ff-side__list{display:flex; flex-direction:column; gap:8px}
.ff-sideRow{display:flex; align-items:center; gap:10px; padding:8px; border-radius:14px; border:1px solid rgba(255,255,255,.07); background: rgba(255,255,255,.03); color:var(--ff-txt); text-decoration:none}
.ff-sideRow:hover{filter:brightness(1.05); text-decoration:none}
.ff-sideRow__ava{width:32px; height:32px; border-radius:999px; overflow:hidden; border:1px solid var(--ff-border)}
.ff-sideRow__text{display:flex; flex-direction:column; line-height:1.2; min-width:0}

/* "Лучшее" ranking badge (crown + 1..5) */
.ff-sideRow{position:relative; padding-right:52px;}
.ff-sideRow__rank{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  gap:5px;
  font-weight:900;
  font-size:12px;
  color:var(--ff-accent2);
  opacity:.95;
  text-shadow:0 0 10px rgba(0,0,0,.18);
}
.ff-sideRow__rank i{font-size:14px;}
.ff-sideRow__rankNum{font-size:12px; font-weight:900; min-width:10px; text-align:right;}

/* "Лучшее" typography should match "Последние обновления" */
.ff-sidebar--right .ff-sideRow__name{
  font-weight:800;
  font-size:16px;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ff-sidebar--right .ff-sideRow__user{
  font-weight:700;
  font-size:12px;
  letter-spacing:.2px;
  color:var(--ff-txt);
  opacity:.88;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ff-link{display:inline-block; margin-top:10px}

.ff-page{padding:14px}
.ff-termDesc{padding:12px; margin-bottom:14px}
.ff-notice{padding:12px; margin-bottom:12px; border-color: rgba(255,79,216,.25)}

.ff-list{margin:8px 0 0 18px}


/* Sidebar navigation (icons + ordered rubrics) */
.ff-side__divider{height:1px; background:rgba(255,255,255,.10); margin:14px 6px}
.ff-side__links--nav,
.ff-side__links--cats,
.ff-side__links--tags{display:flex; flex-direction:column; gap:8px; flex-wrap:nowrap}
/* Keep spacing between the main navigation and rubrics without a visible divider */
.ff-side__links--cats{margin-top:14px}

.ff-side__links--nav .ff-side__link,
.ff-side__links--cats .ff-side__link,
.ff-side__links--tags .ff-side__link{
  display:flex; align-items:center; gap:10px;
  padding:11px 12px;
  border-radius:12px;
  border:none;
  background:transparent;
  box-shadow:none;
  color:var(--ff-txt);
  text-decoration:none !important;
  font-size:17px;
  font-weight:700;
  line-height:1.15;
  transition: background .15s ease, box-shadow .15s ease, transform .15s ease;
}
.ff-side__links--nav .ff-side__link:hover,
.ff-side__links--cats .ff-side__link:hover,
.ff-side__links--tags .ff-side__link:hover{
  background:rgba(255,255,255,.05);
  box-shadow: 0 10px 26px rgba(0,0,0,.30);
  transform: translateY(-1px);
  text-decoration:none !important;
}
/* Keep keyboard focus visible but avoid a "frame" border; use soft glow only. */
.ff-side__links--nav .ff-side__link:focus-visible,
.ff-side__links--cats .ff-side__link:focus-visible,
.ff-side__links--tags .ff-side__link:focus-visible{
  outline:none;
  box-shadow: 0 0 14px rgba(255,79,216,.18), 0 10px 26px rgba(0,0,0,.30);
  text-decoration:none !important;
}
/* Hard kill underline on hover in sidebar blocks (WP may add it globally). */
.ff-side__block a, .ff-side__block a:hover, .ff-side__block a:visited{ text-decoration:none !important; }

.ff-ico{width:18px; text-align:center; flex:0 0 18px}
/* Make icons clearly distinct from text */
.ff-ico--nav{color:var(--ff-accent2) !important}
.ff-ico--folder{color:var(--ff-yellow) !important}
.ff-ico--tag{color:var(--ff-accent) !important}

/* Sidebar tag chips (Filters) */
.ff-taggrid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.ff-tagchip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
  backdrop-filter: blur(12px) saturate(140%);
  color:var(--ff-txt);
  font-size:16px;
  font-weight:700;
  line-height:1;
  text-decoration:none !important;
  transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.ff-tagchip::before{content:'#'; margin-right:6px; opacity:.95;}
.ff-tagchip:hover{
  text-decoration:none !important;
  border-color: rgba(255,79,216,.75);
  background: rgba(255,79,216,.10);
  box-shadow: 0 0 0 2px rgba(255,79,216,.22), 0 12px 28px rgba(0,0,0,.35);
  transform: translateY(-1px);
}
.ff-tagchip.is-active{
  border-color: rgba(255,79,216,.85);
  background: rgba(255,79,216,.12);
  box-shadow: 0 0 0 2px rgba(255,79,216,.26);
}
.ff-tagchip:focus-visible{
  outline:none;
  border-color: rgba(255,79,216,.90);
  box-shadow: 0 0 0 3px rgba(255,79,216,.30), 0 12px 28px rgba(0,0,0,.35);
}

.ff-tagmore{
  width:100%;
  margin-top:12px;
  padding:11px 14px;
  border-radius:14px;
  border:1px solid rgba(255,79,216,.75);
  background: rgba(255,79,216,.10);
  backdrop-filter: blur(12px) saturate(140%);
  color:var(--ff-txt);
  font-size:16px;
  font-weight:700;
  cursor:pointer;
  text-decoration:none !important;
  transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
  box-shadow: 0 0 0 2px rgba(255,79,216,.22), 0 12px 28px rgba(0,0,0,.35);
}
.ff-tagmore:hover{
  border-color: rgba(255,79,216,.92);
  background: rgba(255,79,216,.92);
  color:#0b0d13;
  box-shadow: 0 0 0 2px rgba(255,79,216,.26), 0 16px 38px rgba(0,0,0,.45);
  transform: translateY(-1px);
}
.ff-tagmore:focus-visible{outline:none; box-shadow: 0 0 0 3px rgba(255,79,216,.30), 0 12px 28px rgba(0,0,0,.35);}

/* Recent updates block */
.ff-updRow{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 8px;
  border-radius:14px;
  text-decoration:none;
  color:var(--ff-txt);
  background:transparent;
}
.ff-updRow:hover{
  background:rgba(255,255,255,.06);
  box-shadow: 0 10px 18px rgba(0,0,0,.18);
  text-decoration:none;
}
.ff-updRow__ava{
  width:36px;
  height:36px;
  border-radius:999px;
  overflow:hidden;
  border:1px solid var(--ff-border);
  flex:0 0 auto;
}
.ff-updRow__ava img{width:100%; height:100%; object-fit:cover; display:block;}
.ff-updRow__text{display:flex; flex-direction:column; gap:4px; min-width:0;}
.ff-updRow__name{
  font-weight:800;
  font-size:16px;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ff-updRow__meta{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  font-size:12px;
  letter-spacing:.2px;
  color:var(--ff-txt);
}
.ff-updRow__meta i{color:var(--ff-accent2); font-size:12px;}
.ff-updRow__meta .ff-updRow__num{color:var(--ff-txt);}
.ff-updRow__meta .ff-updRow__sep{
  width:1px;
  height:14px;
  background:rgba(255,255,255,.18);
  display:inline-block;
}
@media (max-width:1024px){
  .ff-updRow{padding:8px 8px}
  .ff-updRow__name{font-size:15px}
  .ff-updRow__meta{font-size:12px}
  .ff-updRow__meta .ff-updRow__sep{height:14px}
}


.ff-sideRow__avaText{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-weight:900;background:rgba(255,255,255,.10);}


/* Legal links in right sidebar: small meta style */
.ff-side__links.ff-side__links--legal{
  gap:8px;
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.ff-side__links.ff-side__links--legal a{
  padding:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  font-weight:700;
  font-size:11px;
  letter-spacing:.2px;
  color:var(--ff-txt);
  opacity:.88;
  white-space:nowrap;
}
.ff-side__links.ff-side__links--legal a:hover{
  background:transparent;
  box-shadow:none;
  color:var(--ff-accent2);
  opacity:1;
}

/* Dot separator used in legal links and age gate */
.ff-legalSep{
  opacity:.45;
  font-weight:900;
  line-height:1;
  user-select:none;
}

.ff-updRow__upd{opacity:.9; margin-right:2px}


/* Match 'Лучшее' card background/hover to 'Последние обновления' (only background + hover behavior) */
.ff-sideRow{background:transparent;}
.ff-sideRow:hover{background:rgba(255,255,255,.06); box-shadow: 0 10px 18px rgba(0,0,0,.18); filter:none; text-decoration:none;}
