/* freexxxporn.org — brutalist/retro stylesheet */
/* v1.0 — alex durán, march 2026 */

@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Courier+Prime:ital,wght@0,400;0,700;1,400&display=swap');

/* ---- reset ---- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:17px;scroll-behavior:smooth}

body{
  font-family:'Courier Prime',Courier,'Courier New',monospace;
  line-height:1.75;
  color:#1a1a1a;
  background:#fafaf9;
  font-weight:400;
}

/* ---- typography ---- */
h1,h2,h3,h4{
  font-family:'Archivo Black','Impact',sans-serif;
  text-transform:uppercase;
  letter-spacing:.02em;
  line-height:1.15;
  color:#0a0a0a;
}
h1{font-size:2.8rem;margin-bottom:.6rem}
h2{font-size:1.7rem;margin-bottom:.8rem;margin-top:2.5rem;padding-bottom:.4rem;border-bottom:3px solid #0a0a0a}
h3{font-size:1.2rem;margin-bottom:.5rem;margin-top:1.5rem}
h4{font-size:1rem;text-transform:none;margin-bottom:.4rem}

p{margin-bottom:1.1rem}
strong{font-weight:700}

a{color:#e63946;text-decoration:underline;text-underline-offset:2px}
a:hover{color:#0a0a0a;background:#e63946;text-decoration:none;padding:0 2px}

hr{border:none;border-top:2px solid #0a0a0a;margin:2rem 0}

blockquote{
  border-left:4px solid #e63946;
  padding:12px 20px;
  margin:1.5rem 0;
  background:#f0efed;
  font-style:italic;
}

/* ---- layout ---- */
.wrap{max-width:960px;margin:0 auto;padding:0 20px}

/* ---- header ---- */
.site-header{
  background:#0a0a0a;
  color:#fafaf9;
  padding:14px 0;
}
.site-header .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
}
.site-header .logo{
  font-family:'Archivo Black',sans-serif;
  font-size:1.3rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.site-header .logo a{color:#e63946;text-decoration:none}
.site-header .logo a:hover{background:none;color:#fff}

.site-header nav ul{display:flex;list-style:none;gap:20px}
.site-header nav a{
  color:#ccc;
  text-decoration:none;
  font-family:'Courier Prime',monospace;
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.site-header nav a:hover,
.site-header nav a.active{color:#e63946;background:none}

/* ---- hero (index only) ---- */
.hero{
  padding:52px 0 40px;
  border-bottom:3px solid #0a0a0a;
}
.hero h1{
  font-size:3rem;
  line-height:1.05;
  margin-bottom:10px;
}
.hero h1 .accent{color:#e63946}
.hero .tagline{
  font-size:1.1rem;
  color:#555;
  max-width:620px;
  margin-bottom:24px;
}
.hero .cta-row{display:flex;gap:12px;flex-wrap:wrap}

/* ---- buttons ---- */
.btn{
  display:inline-block;
  padding:11px 26px;
  font-family:'Archivo Black',sans-serif;
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  text-decoration:none;
  border:3px solid #0a0a0a;
  transition:background .12s,color .12s;
}
.btn:hover{padding:11px 26px}
.btn-primary{background:#e63946;color:#fff;border-color:#e63946}
.btn-primary:hover{background:#0a0a0a;color:#e63946;border-color:#0a0a0a}
.btn-outline{background:transparent;color:#0a0a0a}
.btn-outline:hover{background:#0a0a0a;color:#fafaf9}

/* ---- main content ---- */
.content{padding:40px 0 60px}
.content section{margin-bottom:2.5rem}

/* ---- comparison table ---- */
.comparison-table{
  width:100%;
  border-collapse:collapse;
  margin:1.5rem 0;
  font-size:.92rem;
}
.comparison-table th{
  background:#0a0a0a;
  color:#fafaf9;
  text-align:left;
  padding:10px 14px;
  font-family:'Archivo Black',sans-serif;
  text-transform:uppercase;
  font-size:.8rem;
  letter-spacing:.05em;
}
.comparison-table td{
  padding:12px 14px;
  border-bottom:2px solid #ddd;
  vertical-align:top;
}
.comparison-table tr:hover td{background:#f0efed}
.comparison-table .site-name{
  font-weight:700;
  font-size:1rem;
  white-space:nowrap;
}

/* ---- rating bar ---- */
.rating{display:flex;align-items:center;gap:8px}
.rating-bar{
  width:80px;
  height:10px;
  background:#ddd;
  border:1px solid #aaa;
  position:relative;
  overflow:hidden;
}
.rating-bar .fill{
  height:100%;
  background:#e63946;
}
.rating-num{
  font-weight:700;
  font-size:.95rem;
  min-width:28px;
}

/* ---- site cards (alternative layout) ---- */
.site-card{
  border:3px solid #0a0a0a;
  padding:24px;
  margin-bottom:20px;
  position:relative;
}
.site-card .card-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:12px;
  flex-wrap:wrap;
  gap:8px;
}
.site-card .card-rank{
  font-family:'Archivo Black',sans-serif;
  font-size:2.2rem;
  color:#e63946;
  line-height:1;
}
.site-card h3{margin-top:0;text-transform:none}
.site-card .card-tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.site-card .tag{
  display:inline-block;
  padding:2px 8px;
  border:1px solid #0a0a0a;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.site-card .verdict{
  font-style:italic;
  color:#555;
  margin-top:8px;
  font-size:.95rem;
}

/* ---- pros/cons ---- */
.pros-cons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin:12px 0;
}
.pros-cons ul{list-style:none;padding:0}
.pros-cons li{padding:3px 0;font-size:.9rem}
.pros-cons li::before{margin-right:6px;font-weight:700}
.pros-list li::before{content:"+ ";color:#2a9d3a}
.cons-list li::before{content:"— ";color:#e63946}

/* ---- FAQ / accordion ---- */
.faq-item{
  border:2px solid #0a0a0a;
  margin-bottom:-2px;
}
.faq-item summary{
  padding:14px 18px;
  font-weight:700;
  cursor:pointer;
  list-style:none;
  position:relative;
  font-size:.95rem;
}
.faq-item summary::after{
  content:"▼";
  position:absolute;
  right:18px;
  font-size:.7rem;
  transition:transform .2s;
}
.faq-item[open] summary::after{transform:rotate(180deg)}
.faq-item .faq-body{padding:0 18px 16px;font-size:.9rem}

/* ---- footer ---- */
.site-footer{
  background:#0a0a0a;
  color:#888;
  padding:28px 0;
  font-size:.8rem;
  border-top:3px solid #e63946;
}
.site-footer .wrap{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px;
}
.site-footer a{color:#e63946}
.site-footer a:hover{color:#fff;background:none}
.site-footer .disclaimer{max-width:560px;line-height:1.5}

/* ---- page header (inner pages) ---- */
.page-header{
  padding:40px 0 30px;
  border-bottom:3px solid #0a0a0a;
}
.page-header h1{margin-bottom:6px}
.page-header .subtitle{color:#555;font-size:1rem}

/* ---- review detail ---- */
.review-meta{
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  padding:16px 0;
  border-bottom:2px solid #ddd;
  margin-bottom:20px;
  font-size:.88rem;
}
.review-meta dt{font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.04em;color:#888}
.review-meta dd{font-size:1rem;margin:0}

/* ---- category grid ---- */
.cat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:16px;
  margin:1.5rem 0;
}
.cat-card{
  border:2px solid #0a0a0a;
  padding:18px;
}
.cat-card h3{font-size:1rem;margin:0 0 6px}
.cat-card p{font-size:.85rem;margin:0;color:#555}

/* ---- utils ---- */
.text-accent{color:#e63946}
.text-muted{color:#888}
.text-sm{font-size:.85rem}
.mt-1{margin-top:1rem}
.mt-2{margin-top:2rem}
.mb-0{margin-bottom:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* ---- responsive ---- */
@media(max-width:700px){
  html{font-size:15px}
  h1{font-size:2rem}
  .hero h1{font-size:2.2rem}
  .site-header .wrap{flex-direction:column;align-items:flex-start}
  .site-header nav ul{gap:14px}
  .comparison-table{font-size:.82rem}
  .comparison-table th,.comparison-table td{padding:8px 10px}
  .pros-cons{grid-template-columns:1fr}
  .site-footer .wrap{flex-direction:column}
  .review-meta{flex-direction:column;gap:12px}
}

@media(max-width:480px){
  .hero h1{font-size:1.7rem}
  .comparison-table .hide-mobile{display:none}
  .btn{padding:10px 18px;font-size:.8rem}
}
