/*
Theme Name: PrimeRank
Theme URI: https://example.com/primerank
Author: Ali
Author URI: https://example.com
Description: PrimeRank — a bold, original directory & review theme for adult site listings. Leaderboard-style rankings, score chips, editor verdicts, niche taxonomies, and a built-in ExoClick ad system with slot-consuming grid-tile injection. 100% original design (no third-party assets).
Version: 1.5.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: primerank
Tags: directory, reviews, ratings, dark, adult, custom-colors, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* ===================================================================
   PrimeRank — Design Tokens
   Edit these (or override from PrimeRank Settings) to re-skin.
=================================================================== */
:root{
  --pr-bg:        #0b0b10;
  --pr-bg-2:      #0f0f17;
  --pr-surface:   #16161f;
  --pr-surface-2: #1f1f2b;
  --pr-line:      rgba(255,255,255,.08);
  --pr-line-2:    rgba(255,255,255,.14);

  --pr-primary:   #ff2b59;
  --pr-primary-2: #ff6a3d;
  --pr-gold:      #ffc531;

  --pr-good:      #36d399;
  --pr-mid:       #ffc531;
  --pr-low:       #ff5e5e;

  --pr-text:      #ececf2;
  --pr-muted:     #8c8ca3;
  --pr-faint:     #5c5c70;

  --pr-grad:      linear-gradient(135deg, var(--pr-primary) 0%, var(--pr-primary-2) 100%);

  --pr-radius:    16px;
  --pr-radius-sm: 10px;
  --pr-shadow:    0 10px 40px rgba(0,0,0,.45);
  --pr-shadow-sm: 0 4px 18px rgba(0,0,0,.35);

  --pr-container: 1200px;
  --pr-gap:       20px;

  --pr-display:   "Anton", "Arial Narrow", system-ui, sans-serif;
  --pr-body:      "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --pr-header-h:  64px;
}

/* ===================================================================
   Reset / base
=================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--pr-body);
  background:var(--pr-bg);
  color:var(--pr-text);
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; transition:color .15s ease, opacity .15s ease; }
a:hover{ color:#fff; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ margin:0 0 .4em; line-height:1.12; }
p{ margin:0 0 1em; }
ul{ margin:0; padding:0; list-style:none; }
:focus-visible{ outline:2px solid var(--pr-primary); outline-offset:3px; border-radius:4px; }
::selection{ background:var(--pr-primary); color:#fff; }

.pr-container{ width:100%; max-width:var(--pr-container); margin:0 auto; padding:0 18px; }
.screen-reader-text{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.pr-skip-link{ position:absolute; left:-9999px; top:0; z-index:9999; background:var(--pr-primary); color:#fff; padding:10px 16px; border-radius:0 0 8px 0; }
.pr-skip-link:focus{ left:0; }

/* ===================================================================
   Eyebrow / section headings (structure = info)
=================================================================== */
.pr-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--pr-body); font-weight:700; font-size:12px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--pr-primary);
  margin-bottom:6px;
}
.pr-eyebrow::before{ content:""; width:22px; height:2px; background:var(--pr-grad); border-radius:2px; }
.pr-section{ padding:38px 0; }
.pr-section-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:22px; flex-wrap:wrap;
}
.pr-section-title{
  font-family:var(--pr-display); font-weight:400; text-transform:uppercase;
  font-size:clamp(26px,3.6vw,40px); letter-spacing:.01em; line-height:1; margin:0;
}
.pr-viewall{
  font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase;
  color:var(--pr-muted); display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
}
.pr-viewall:hover{ color:var(--pr-primary); }
.pr-viewall svg{ width:14px; height:14px; transition:transform .15s ease; }
.pr-viewall:hover svg{ transform:translateX(3px); }

/* ===================================================================
   Header
=================================================================== */
.pr-header{
  position:sticky; top:0; z-index:120;
  background:rgba(11,11,16,.72);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--pr-line);
  transition:background .25s ease, box-shadow .25s ease;
}
.pr-header.pr-scrolled{ background:rgba(11,11,16,.94); box-shadow:0 6px 24px rgba(0,0,0,.5); }
.pr-header-inner{ display:flex; align-items:center; gap:18px; height:var(--pr-header-h); }
.pr-brand{ display:flex; align-items:center; gap:11px; flex-shrink:0; }
.pr-brand svg{ width:40px; height:40px; }
.pr-brand-name{
  font-family:var(--pr-display); font-weight:400; text-transform:uppercase;
  font-size:25px; letter-spacing:.02em; line-height:1; color:#fff;
}
.pr-brand-name b{ background:var(--pr-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; font-weight:400; }

.pr-nav{ display:flex; align-items:center; gap:4px; margin-left:6px; }
.pr-nav a{
  display:inline-flex; align-items:center; padding:8px 13px; border-radius:9px;
  font-weight:600; font-size:14.5px; color:var(--pr-muted); position:relative;
}
.pr-nav a:hover, .pr-nav .current-menu-item > a{ color:#fff; background:var(--pr-surface); }
.pr-nav .current-menu-item > a::after{
  content:""; position:absolute; left:13px; right:13px; bottom:3px; height:2px; background:var(--pr-grad); border-radius:2px;
}

.pr-header-right{ margin-left:auto; display:flex; align-items:center; gap:10px; }

/* Search in header */
.pr-search{ position:relative; display:flex; align-items:center; gap:8px; }
.pr-search form{ display:flex; align-items:center; }
.pr-search input[type="search"]{
  width:0; padding:0; border:0; outline:none; background:var(--pr-surface);
  color:var(--pr-text); height:40px; border-radius:9px; font-size:14px;
  transition:width .25s ease, padding .25s ease; font-family:inherit;
}
.pr-search.pr-open input[type="search"]{ width:230px; padding:0 14px; border:1px solid var(--pr-line-2); }
.pr-icon-btn{
  width:40px; height:40px; display:inline-grid; place-items:center; flex-shrink:0;
  background:var(--pr-surface); border:1px solid var(--pr-line); border-radius:9px; color:var(--pr-text);
}
.pr-icon-btn:hover{ border-color:var(--pr-line-2); color:#fff; }
.pr-icon-btn svg{ width:18px; height:18px; }

.pr-burger{ display:none; }

/* Mobile drawer */
.pr-drawer{
  position:fixed; inset:0 0 0 auto; width:min(320px,86vw); z-index:200;
  background:var(--pr-bg-2); border-left:1px solid var(--pr-line);
  transform:translateX(100%); transition:transform .28s cubic-bezier(.4,0,.2,1);
  padding:18px; overflow-y:auto;
}
.pr-drawer.pr-open{ transform:translateX(0); }
.pr-drawer-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.pr-drawer nav a{ display:block; padding:13px 8px; border-bottom:1px solid var(--pr-line); font-weight:600; color:var(--pr-text); }
.pr-drawer nav a:hover{ color:var(--pr-primary); }
.pr-overlay{ position:fixed; inset:0; z-index:190; background:rgba(0,0,0,.6); opacity:0; visibility:hidden; transition:.25s; }
.pr-overlay.pr-open{ opacity:1; visibility:visible; }

/* ===================================================================
   Ad zones
=================================================================== */
.pr-ad{ display:flex; flex-direction:column; align-items:center; justify-content:center; }
.pr-ad-leaderboard{ padding:14px 0; min-height:0; }
.pr-ad-leaderboard .pr-ad-inner{ width:100%; display:flex; justify-content:center; }
.pr-ad-label{
  font-size:9.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--pr-faint);
  margin-bottom:6px; font-weight:700;
}
.pr-ad-sidebar{ margin-bottom:var(--pr-gap); }
.pr-ad-incontent{ margin:26px 0; padding:18px; background:var(--pr-surface); border:1px dashed var(--pr-line-2); border-radius:var(--pr-radius); }

/* Grid-tile ad (occupies a real grid cell) */
.pr-card.pr-ad-tile{
  background:var(--pr-surface); border:1px dashed var(--pr-line-2);
  display:flex; align-items:center; justify-content:center; min-height:230px; padding:14px;
}
.pr-card.pr-ad-tile .pr-ad-label{ position:absolute; top:8px; left:10px; }

/* ===================================================================
   Listing grid + cards (the signature: cut-corner card + score chip)
=================================================================== */
.pr-grid{
  display:grid; gap:var(--pr-gap);
  grid-template-columns:repeat(auto-fill, minmax(250px,1fr));
}
.pr-grid.pr-cols-3{ grid-template-columns:repeat(3,1fr); }
.pr-grid.pr-cols-4{ grid-template-columns:repeat(4,1fr); }

.pr-card{
  position:relative; background:var(--pr-surface);
  border:1px solid var(--pr-line); border-radius:var(--pr-radius);
  overflow:hidden; transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
  display:flex; flex-direction:column;
}
.pr-card:hover{ transform:translateY(-4px); border-color:var(--pr-line-2); box-shadow:var(--pr-shadow); }

.pr-card-thumb{ position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--pr-bg-2); }
.pr-card-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.pr-card:hover .pr-card-thumb img{ transform:scale(1.06); }
.pr-card-thumb .pr-noimg{
  width:100%; height:100%; display:grid; place-items:center;
  background:radial-gradient(120% 120% at 30% 10%, #20202c, #101019);
  color:var(--pr-faint); font-family:var(--pr-display); font-size:30px;
}
.pr-card-thumb::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,11,16,0) 45%, rgba(11,11,16,.78) 100%);
  pointer-events:none;
}

/* rank badge top-left */
.pr-rank{
  position:absolute; top:0; left:0; z-index:3;
  font-family:var(--pr-display); font-size:15px; line-height:1; color:#fff;
  padding:8px 12px 9px; background:rgba(11,11,16,.62); backdrop-filter:blur(4px);
  border-bottom-right-radius:12px;
}
.pr-rank b{ color:var(--pr-primary); }

/* category chip top-right */
.pr-card-cat{
  position:absolute; top:9px; right:9px; z-index:3;
  font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  padding:5px 9px; border-radius:999px; color:#fff;
  background:rgba(11,11,16,.55); backdrop-filter:blur(4px); border:1px solid var(--pr-line-2);
}

/* score chip (signature element) */
.pr-score{
  position:absolute; right:10px; bottom:10px; z-index:4;
  display:flex; align-items:baseline; gap:2px;
  font-family:var(--pr-display); line-height:1;
  padding:7px 11px 8px; border-radius:11px;
  background:rgba(11,11,16,.66); backdrop-filter:blur(6px);
  border:1px solid var(--pr-line-2);
  box-shadow:0 6px 18px rgba(0,0,0,.4);
}
.pr-score .pr-score-num{ font-size:21px; }
.pr-score .pr-score-max{ font-size:11px; color:var(--pr-muted); }
.pr-score.is-good .pr-score-num{ color:var(--pr-good); }
.pr-score.is-mid  .pr-score-num{ color:var(--pr-mid); }
.pr-score.is-low  .pr-score-num{ color:var(--pr-low); }

.pr-card-body{ padding:13px 14px 15px; display:flex; flex-direction:column; gap:8px; flex:1; }
.pr-card-title{
  font-family:var(--pr-body); font-weight:700; font-size:16px; line-height:1.25; margin:0;
  display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden;
}
.pr-card-title a:hover{ color:var(--pr-primary); }
.pr-stars{ display:inline-flex; gap:2px; }
.pr-stars svg{ width:14px; height:14px; }
.pr-star-on{ fill:var(--pr-gold); }
.pr-star-off{ fill:rgba(255,255,255,.16); }
.pr-card-excerpt{
  color:var(--pr-muted); font-size:13.5px; line-height:1.5; margin:0;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.pr-card-actions{ display:flex; gap:8px; margin-top:auto; padding-top:4px; }

/* Buttons */
.pr-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  font-weight:700; font-size:13.5px; letter-spacing:.02em;
  padding:9px 14px; border-radius:10px; border:1px solid transparent; white-space:nowrap;
  transition:transform .12s ease, opacity .15s ease, background .15s ease, border-color .15s ease;
}
.pr-btn:active{ transform:translateY(1px); }
.pr-btn-primary{ background:var(--pr-grad); color:#fff; flex:1; }
.pr-btn-primary:hover{ color:#fff; opacity:.92; }
.pr-btn-ghost{ background:transparent; border-color:var(--pr-line-2); color:var(--pr-text); }
.pr-btn-ghost:hover{ border-color:var(--pr-primary); color:#fff; }
.pr-btn svg{ width:15px; height:15px; }
.pr-btn-lg{ padding:14px 22px; font-size:15.5px; border-radius:12px; }

/* ===================================================================
   Leaderboard hero (home)
=================================================================== */
.pr-hero{ padding:30px 0 8px; }
.pr-hero-grid{ display:grid; grid-template-columns:1.45fr 1fr; gap:var(--pr-gap); align-items:stretch; }

.pr-hero-feature{
  position:relative; border-radius:var(--pr-radius); overflow:hidden;
  border:1px solid var(--pr-line); min-height:420px; display:flex; align-items:flex-end;
  background:var(--pr-surface);
}
.pr-hero-feature .pr-hero-bg{ position:absolute; inset:0; }
.pr-hero-feature .pr-hero-bg img{ width:100%; height:100%; object-fit:cover; }
.pr-hero-feature::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,11,16,.05) 0%, rgba(11,11,16,.55) 55%, rgba(11,11,16,.96) 100%);
}
.pr-hero-feature .pr-hero-content{ position:relative; z-index:2; padding:28px; width:100%; }
.pr-hero-badge{
  display:inline-flex; align-items:center; gap:7px; padding:6px 12px; border-radius:999px;
  background:var(--pr-grad); color:#fff; font-weight:800; font-size:11.5px; letter-spacing:.1em;
  text-transform:uppercase; margin-bottom:14px;
}
.pr-hero-title{
  font-family:var(--pr-display); font-weight:400; text-transform:uppercase;
  font-size:clamp(30px,4vw,52px); line-height:.96; margin:0 0 10px;
}
.pr-hero-meta{ display:flex; align-items:center; gap:14px; margin-bottom:14px; flex-wrap:wrap; }
.pr-hero-score{ font-family:var(--pr-display); font-size:34px; line-height:1; color:var(--pr-good); }
.pr-hero-score small{ font-size:14px; color:var(--pr-muted); }
.pr-hero-desc{ color:#d4d4de; max-width:48ch; margin-bottom:18px; }
.pr-hero-actions{ display:flex; gap:10px; flex-wrap:wrap; }

.pr-rank-list{ display:flex; flex-direction:column; gap:10px; }
.pr-rank-row{
  display:flex; align-items:center; gap:13px; padding:11px 13px;
  background:var(--pr-surface); border:1px solid var(--pr-line); border-radius:var(--pr-radius-sm);
  transition:transform .15s ease, border-color .15s ease;
}
.pr-rank-row:hover{ transform:translateX(4px); border-color:var(--pr-line-2); }
.pr-rank-num{ font-family:var(--pr-display); font-size:23px; color:var(--pr-faint); width:30px; text-align:center; flex-shrink:0; }
.pr-rank-row:nth-child(1) .pr-rank-num{ color:var(--pr-primary); }
.pr-rank-thumb{ width:62px; height:42px; border-radius:7px; object-fit:cover; flex-shrink:0; background:var(--pr-bg-2); }
.pr-rank-info{ min-width:0; flex:1; }
.pr-rank-info h4{ font-family:var(--pr-body); font-size:14.5px; font-weight:700; margin:0 0 2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pr-rank-info .pr-stars svg{ width:12px; height:12px; }
.pr-rank-score{ font-family:var(--pr-display); font-size:18px; margin-left:auto; flex-shrink:0; }
.pr-rank-score.is-good{ color:var(--pr-good); } .pr-rank-score.is-mid{ color:var(--pr-mid); } .pr-rank-score.is-low{ color:var(--pr-low); }

/* ===================================================================
   Single review page
=================================================================== */
.pr-single{ padding:30px 0 50px; }
.pr-single-grid{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:34px; align-items:start; }
.pr-breadcrumbs{ font-size:13px; color:var(--pr-muted); margin-bottom:18px; display:flex; gap:7px; flex-wrap:wrap; align-items:center; }
.pr-breadcrumbs a:hover{ color:var(--pr-primary); }
.pr-breadcrumbs .sep{ color:var(--pr-faint); }

.pr-review-hero{
  position:relative; border-radius:var(--pr-radius); overflow:hidden; border:1px solid var(--pr-line);
  margin-bottom:22px; aspect-ratio:16/8; background:var(--pr-surface);
}
.pr-review-hero img{ width:100%; height:100%; object-fit:cover; }
.pr-review-head{ display:flex; align-items:flex-start; gap:20px; flex-wrap:wrap; margin-bottom:18px; }
.pr-review-titlewrap{ flex:1; min-width:240px; }
.pr-review-title{ font-family:var(--pr-display); font-weight:400; text-transform:uppercase; font-size:clamp(28px,4.4vw,46px); line-height:1; margin:0 0 8px; }
.pr-review-tagline{ color:var(--pr-muted); font-size:16px; margin:0; }

.pr-verdict{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:var(--pr-surface-2); border:1px solid var(--pr-line-2); border-radius:14px;
  padding:14px 22px; min-width:120px;
}
.pr-verdict .pr-verdict-num{ font-family:var(--pr-display); font-size:46px; line-height:.9; }
.pr-verdict.is-good .pr-verdict-num{ color:var(--pr-good); } .pr-verdict.is-mid .pr-verdict-num{ color:var(--pr-mid); } .pr-verdict.is-low .pr-verdict-num{ color:var(--pr-low); }
.pr-verdict .pr-verdict-label{ font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--pr-muted); margin-top:3px; }
.pr-verdict .pr-stars{ margin-top:8px; }

.pr-visit-bar{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:26px; }
.pr-meta-tags{ display:flex; gap:8px; flex-wrap:wrap; }
.pr-tag{ font-size:12px; font-weight:600; padding:5px 11px; border-radius:999px; background:var(--pr-surface); border:1px solid var(--pr-line); color:var(--pr-muted); }
.pr-tag:hover{ color:#fff; border-color:var(--pr-line-2); }

.pr-proscons{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:26px 0; }
.pr-pc{ background:var(--pr-surface); border:1px solid var(--pr-line); border-radius:var(--pr-radius); padding:18px 20px; }
.pr-pc h3{ font-family:var(--pr-body); font-size:15px; text-transform:uppercase; letter-spacing:.06em; margin:0 0 12px; display:flex; align-items:center; gap:8px; }
.pr-pc.pros h3{ color:var(--pr-good); } .pr-pc.cons h3{ color:var(--pr-low); }
.pr-pc li{ display:flex; gap:9px; align-items:flex-start; padding:6px 0; font-size:14.5px; color:#d4d4de; }
.pr-pc li svg{ width:16px; height:16px; flex-shrink:0; margin-top:3px; }
.pr-pc.pros li svg{ color:var(--pr-good); } .pr-pc.cons li svg{ color:var(--pr-low); }

.pr-content{ font-size:16.5px; line-height:1.75; color:#d8d8e2; }
.pr-content h2,.pr-content h3{ font-family:var(--pr-body); font-weight:800; color:#fff; margin-top:1.4em; }
.pr-content h2{ font-size:24px; } .pr-content h3{ font-size:19px; }
.pr-content a{ color:var(--pr-primary); text-decoration:underline; text-underline-offset:3px; }
.pr-content a:hover{ color:var(--pr-primary-2); }
.pr-content img{ border-radius:var(--pr-radius); margin:1.2em 0; }
.pr-content blockquote{ border-left:3px solid var(--pr-primary); margin:1.4em 0; padding:4px 0 4px 18px; color:#fff; font-style:italic; }
.pr-content ul{ list-style:disc; padding-left:1.3em; margin:1em 0; } .pr-content ul li{ margin:.3em 0; }

/* Sidebar */
.pr-sidebar{ position:sticky; top:calc(var(--pr-header-h) + 16px); display:flex; flex-direction:column; gap:var(--pr-gap); }
.pr-widget{ background:var(--pr-surface); border:1px solid var(--pr-line); border-radius:var(--pr-radius); padding:18px; }
.pr-widget-title{ font-family:var(--pr-body); font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--pr-muted); margin:0 0 14px; padding-bottom:12px; border-bottom:1px solid var(--pr-line); }

/* ===================================================================
   Archive / taxonomy header + pagination
=================================================================== */
.pr-archive-head{ padding:40px 0 6px; }
.pr-archive-head .pr-archive-title{ font-family:var(--pr-display); font-weight:400; text-transform:uppercase; font-size:clamp(30px,5vw,56px); line-height:1; margin:0 0 8px; }
.pr-archive-head .pr-archive-desc{ color:var(--pr-muted); max-width:60ch; }
.pr-archive-head .pr-count{ color:var(--pr-faint); font-size:13px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }

.pr-pagination{ display:flex; justify-content:center; gap:7px; margin-top:36px; flex-wrap:wrap; }
.pr-pagination a, .pr-pagination span{
  min-width:40px; height:40px; display:inline-grid; place-items:center; padding:0 10px;
  border-radius:10px; background:var(--pr-surface); border:1px solid var(--pr-line);
  font-weight:700; font-size:14px; color:var(--pr-text);
}
.pr-pagination a:hover{ border-color:var(--pr-line-2); color:#fff; }
.pr-pagination .current{ background:var(--pr-grad); border-color:transparent; color:#fff; }

/* Niche / category chips strip */
.pr-niche-strip{ display:flex; gap:9px; flex-wrap:wrap; }
.pr-niche-chip{
  display:inline-flex; align-items:center; gap:7px; padding:9px 15px; border-radius:999px;
  background:var(--pr-surface); border:1px solid var(--pr-line); font-weight:600; font-size:14px; color:var(--pr-muted);
}
.pr-niche-chip:hover{ color:#fff; border-color:var(--pr-primary); transform:translateY(-2px); }
.pr-niche-chip span{ font-size:11px; color:var(--pr-faint); }

/* ===================================================================
   Footer
=================================================================== */
.pr-footer{ background:var(--pr-bg-2); border-top:1px solid var(--pr-line); margin-top:50px; padding:46px 0 26px; }
.pr-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; margin-bottom:36px; }
.pr-footer h4{ font-family:var(--pr-body); font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--pr-muted); margin:0 0 16px; }
.pr-footer-links a{ display:block; padding:5px 0; color:var(--pr-muted); font-size:14.5px; }
.pr-footer-links a:hover{ color:var(--pr-primary); }
.pr-footer-brand .pr-brand{ margin-bottom:14px; }
.pr-footer-brand p{ color:var(--pr-muted); font-size:14px; max-width:34ch; }
.pr-age{
  display:inline-flex; align-items:center; gap:8px; margin-top:14px; padding:8px 13px; border-radius:10px;
  background:var(--pr-surface); border:1px solid var(--pr-line-2); font-weight:800; font-size:12px; letter-spacing:.04em; color:#fff;
}
.pr-age b{ color:var(--pr-primary); }
.pr-footer-bottom{ border-top:1px solid var(--pr-line); padding-top:22px; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; align-items:center; }
.pr-footer-bottom p{ margin:0; color:var(--pr-faint); font-size:13px; }
.pr-disclaimer{ color:var(--pr-faint); font-size:12px; line-height:1.6; max-width:90ch; margin-top:16px; }

/* ===================================================================
   Comments (light)
=================================================================== */
.pr-comments{ margin-top:40px; background:var(--pr-surface); border:1px solid var(--pr-line); border-radius:var(--pr-radius); padding:24px; }
.pr-comments .comment-list{ list-style:none; }
.pr-comments .comment-body{ padding:14px 0; border-bottom:1px solid var(--pr-line); }
.pr-comments input[type="text"], .pr-comments input[type="email"], .pr-comments input[type="url"], .pr-comments textarea{
  width:100%; background:var(--pr-bg-2); border:1px solid var(--pr-line-2); color:var(--pr-text);
  border-radius:10px; padding:11px 13px; font-family:inherit; margin-bottom:12px;
}
.pr-comments .form-submit input{ background:var(--pr-grad); color:#fff; border:0; padding:11px 22px; border-radius:10px; font-weight:700; cursor:pointer; }

/* Empty state */
.pr-empty{ text-align:center; padding:70px 20px; }
.pr-empty h2{ font-family:var(--pr-display); font-weight:400; text-transform:uppercase; font-size:34px; margin-bottom:10px; }
.pr-empty p{ color:var(--pr-muted); }

/* ===================================================================
   Responsive
=================================================================== */
@media (max-width:1024px){
  .pr-hero-grid{ grid-template-columns:1fr; }
  .pr-single-grid{ grid-template-columns:1fr; }
  .pr-sidebar{ position:static; }
  .pr-grid.pr-cols-4{ grid-template-columns:repeat(3,1fr); }
  .pr-footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .pr-nav{ display:none; }
  .pr-burger{ display:inline-grid; }
  .pr-grid.pr-cols-3, .pr-grid.pr-cols-4{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  :root{ --pr-gap:14px; }
  .pr-grid, .pr-grid.pr-cols-3, .pr-grid.pr-cols-4{ grid-template-columns:repeat(2,1fr); }
  .pr-proscons{ grid-template-columns:1fr; }
  .pr-footer-grid{ grid-template-columns:1fr 1fr; gap:22px; }
  .pr-card-body{ padding:11px; }
  .pr-card-title{ font-size:14.5px; }
  .pr-card-actions .pr-btn-ghost{ display:none; }
  .pr-search.pr-open input[type="search"]{ width:150px; }
  .pr-hero-feature{ min-height:340px; }
}
@media (max-width:380px){
  .pr-grid, .pr-grid.pr-cols-3, .pr-grid.pr-cols-4{ grid-template-columns:1fr; }
  .pr-footer-grid{ grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
}

/* ===================================================================
   Standalone search form (get_search_form / 404)
=================================================================== */
.pr-searchform{ display:flex; gap:8px; align-items:center; }
.pr-searchform input[type="search"]{
  flex:1; min-width:0; height:46px; padding:0 16px; border-radius:12px;
  background:var(--pr-surface); border:1px solid var(--pr-line-2); color:var(--pr-text);
  font-family:inherit; font-size:15px;
}
.pr-searchform input[type="search"]:focus{ outline:none; border-color:var(--pr-primary); }
.pr-searchform .pr-btn{ height:46px; }

/* ===================================================================
   Listing-style homepage "See all" button (under each niche grid)
=================================================================== */
.pr-seeall-wrap{ text-align:center; margin-top:22px; }
.pr-seeall{ display:inline-flex; align-items:center; gap:8px; }
.pr-seeall svg{ width:16px; height:16px; transition:transform .15s ease; }
.pr-seeall:hover svg{ transform:translateX(3px); }

/* ===================================================================
   Compact directory homepage style (category blocks + numbered lists)
=================================================================== */
.pr-dir{ column-count:4; column-gap:var(--pr-gap); }
.pr-dir-block{
  --acc:var(--pr-primary); --acc-tx:#0b0b10;
  break-inside:avoid; -webkit-column-break-inside:avoid; page-break-inside:avoid;
  display:inline-block; width:100%; margin:0 0 var(--pr-gap);
  background:var(--pr-surface); border:1px solid var(--pr-line);
  border-top:3px solid var(--acc); border-radius:var(--pr-radius); overflow:hidden;
}
.pr-dir-head{ display:flex; align-items:center; gap:9px; padding:14px 15px 2px; }
.pr-dir-ico{ width:26px; height:26px; border-radius:7px; flex-shrink:0; display:grid; place-items:center; font-family:var(--pr-display); font-size:14px; background:var(--acc); color:var(--acc-tx); }
.pr-dir-title{ font-family:var(--pr-body); font-weight:800; font-size:14.5px; margin:0; text-transform:uppercase; letter-spacing:.02em; line-height:1.2; color:#fff; }
.pr-dir-block .pr-dir-title a{ color:#fff; }
.pr-dir-title a:hover{ color:var(--acc); }
.pr-dir-desc{ color:var(--pr-muted); font-size:12.5px; line-height:1.45; margin:7px 15px 6px; }
.pr-dir-list{ list-style:none; margin:6px 0 0; padding:0 8px 6px; }
.pr-dir-row{ display:flex; align-items:center; gap:9px; padding:6px 7px; border-radius:8px; }
.pr-dir-row:hover{ background:var(--pr-surface-2); }
.pr-dir-num{ width:18px; text-align:right; color:var(--pr-faint); font-size:12px; font-weight:700; flex-shrink:0; }
.pr-dir-link{ display:flex; align-items:center; gap:8px; min-width:0; flex:1; }
.pr-dir-fav{ width:20px; height:20px; border-radius:5px; object-fit:cover; flex-shrink:0; background:var(--pr-bg-2); }
.pr-dir-favph{ display:grid; place-items:center; font-size:11px; font-weight:800; color:#fff; background:var(--pr-surface-2); border:1px solid var(--pr-line); }
.pr-dir-name{ font-size:13.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pr-dir-link:hover .pr-dir-name{ color:#fff; }
.pr-dir-badge{ font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:2px 5px; border-radius:4px; flex-shrink:0; }
.pr-dir-new{ background:var(--pr-primary); color:#fff; }
.pr-dir-score{ font-family:var(--pr-display); font-size:13px; flex-shrink:0; }
.pr-dir-score.is-good{ color:var(--pr-good); } .pr-dir-score.is-mid{ color:var(--pr-mid); } .pr-dir-score.is-low{ color:var(--pr-low); }
.pr-dir-seeall{ display:flex; align-items:center; justify-content:center; gap:7px; margin:8px 12px 14px; padding:10px; border-radius:9px; background:var(--acc); color:var(--acc-tx); font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.03em; }
.pr-dir-seeall svg{ width:15px; height:15px; }
.pr-dir-seeall:hover{ color:var(--acc-tx); opacity:.9; }
@media (max-width:1024px){ .pr-dir{ column-count:3; } }
@media (max-width:760px){ .pr-dir{ column-count:2; } }
@media (max-width:520px){ .pr-dir{ column-count:1; } }

/* ===================================================================
   Compact directory — search, visited, scrollbar, tooltip, traffic
=================================================================== */
.pr-dir-head{ position:relative; }
.pr-dir-head .pr-dir-title{ flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pr-dir-searchbtn{ flex-shrink:0; width:26px; height:26px; display:grid; place-items:center; background:transparent; border:1px solid var(--pr-line); border-radius:7px; color:var(--pr-muted); cursor:pointer; }
.pr-dir-searchbtn:hover{ color:#fff; border-color:var(--acc); }
.pr-dir-searchbtn svg{ width:14px; height:14px; }
.pr-dir-search{ display:none; padding:0 13px; margin:8px 0 0; }
.pr-dir-search.pr-open{ display:block; }
.pr-dir-search input[type="search"]{ width:100%; height:36px; padding:0 12px; border-radius:9px; background:var(--pr-bg-2); border:1px solid var(--pr-line-2); color:var(--pr-text); font-family:inherit; font-size:13px; }
.pr-dir-search input[type="search"]:focus{ outline:none; border-color:var(--acc); }

.pr-dir-list{ overflow-y:auto; scrollbar-width:thin; scrollbar-color:var(--pr-line-2) transparent; }
.pr-dir-list::-webkit-scrollbar{ width:8px; }
.pr-dir-list::-webkit-scrollbar-thumb{ background:var(--pr-line-2); border-radius:8px; }
.pr-dir-list::-webkit-scrollbar-track{ background:transparent; }

.pr-dir-row.pr-visited .pr-dir-name{ color:var(--pr-faint); }
.pr-dir-row.pr-visited .pr-dir-fav{ opacity:.45; }
.pr-dir-row.pr-visited .pr-dir-num{ color:#3b3b49; }

.pr-tip{ position:fixed; z-index:9999; max-width:260px; padding:9px 12px; background:#0f0f17; border:1px solid var(--pr-line-2); border-radius:10px; color:var(--pr-text); font-size:12.5px; line-height:1.45; box-shadow:var(--pr-shadow); pointer-events:none; opacity:0; transform:translateY(4px); transition:opacity .12s ease, transform .12s ease; }
.pr-tip.pr-show{ opacity:1; transform:translateY(0); }

.pr-traffic{ display:inline-flex; align-items:center; gap:7px; margin:0 0 22px; color:var(--pr-muted); font-size:13px; }
.pr-traffic svg{ width:15px; height:15px; color:var(--pr-good); }

/* ===================================================================
   Site submission form ([primerank_submit])
=================================================================== */
.pr-submit{ max-width:680px; margin:0 auto; }
.pr-submit-intro{ color:var(--pr-muted); margin-bottom:18px; }
.pr-submit-back{ background:var(--pr-surface); border:1px solid var(--pr-line); border-left:3px solid var(--pr-primary); border-radius:var(--pr-radius); padding:16px 18px; margin-bottom:22px; }
.pr-submit-back strong{ display:block; font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--pr-primary); margin-bottom:6px; }
.pr-submit-back p{ color:var(--pr-muted); font-size:13.5px; margin:0 0 10px; }
.pr-snippet{ display:block; background:var(--pr-bg-2); border:1px dashed var(--pr-line-2); border-radius:9px; padding:11px 13px; font-family:Menlo,Consolas,monospace; font-size:13px; color:var(--pr-text); word-break:break-all; }
.pr-submit .pr-field{ margin-bottom:16px; }
.pr-submit .pr-field label{ display:block; font-weight:600; font-size:13.5px; margin-bottom:6px; }
.pr-submit input[type="text"],
.pr-submit input[type="url"],
.pr-submit input[type="email"],
.pr-submit select,
.pr-submit textarea{
  width:100%; background:var(--pr-surface); border:1px solid var(--pr-line-2); color:var(--pr-text);
  border-radius:10px; padding:12px 14px; font-family:inherit; font-size:14.5px;
}
.pr-submit textarea{ min-height:120px; resize:vertical; }
.pr-submit input:focus, .pr-submit select:focus, .pr-submit textarea:focus{ outline:none; border-color:var(--pr-primary); }
.pr-submit select{ appearance:none; -webkit-appearance:none; cursor:pointer; }
.pr-submit .pr-hp{ position:absolute !important; left:-9999px !important; height:0; overflow:hidden; }
.pr-note{ padding:13px 16px; border-radius:10px; margin-bottom:18px; font-weight:600; font-size:14px; }
.pr-note.ok{ background:rgba(54,211,153,.12); border:1px solid rgba(54,211,153,.4); border-left:3px solid var(--pr-good); color:#bdf3df; }
.pr-note.err{ background:rgba(255,94,94,.1); border:1px solid rgba(255,94,94,.4); border-left:3px solid var(--pr-low); color:#ffd2d2; }
