/*
Theme Name: TubeAff
Theme URI: https://example.com/tubeaff
Author: TubeAff
Description: Dark tube-style video theme (18+) with affiliate play button, many lazy-loaded iframe ad slots (300x250, 728x90, 250x900, 160x500), age gate, Policy and 18 U.S.C. 2257 pages.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: tubeaff
Tags: dark, video, adult, grid-layout
*/

:root{
  --bg:#000;
  --bg2:#151515;
  --bg3:#1f1f1f;
  --line:#2c2c2c;
  --text:#e6e6e6;
  --muted:#9a9a9a;
  --accent:#ff9000;
  --accent-ink:#000;
  --radius:4px;
  --maxw:1600px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--text);font:14px/1.45 Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--text);text-decoration:none}
a:hover{color:var(--accent)}
img{max-width:100%;display:block}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}

/* ---------- Header ---------- */
.site-header{background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.hdr-top{display:flex;align-items:center;gap:20px;height:64px}
.logo{display:flex;align-items:center;font-size:26px;font-weight:700;letter-spacing:-.5px;white-space:nowrap}
.logo img{max-height:40px;width:auto}
.logo .l1{color:#fff}
.logo .l2{color:var(--accent);margin-left:2px}
.search{flex:1;display:flex;max-width:640px}
.search input{flex:1;background:var(--bg3);border:1px solid var(--line);border-right:0;color:#fff;padding:10px 14px;font-size:14px;border-radius:var(--radius) 0 0 var(--radius);outline:none}
.search input:focus{border-color:var(--accent)}
.search button{background:var(--accent);color:var(--accent-ink);border:0;padding:0 18px;font-weight:700;border-radius:0 var(--radius) var(--radius) 0;cursor:pointer}
.hdr-right{margin-left:auto;display:flex;gap:10px}
.btn{display:inline-block;padding:8px 14px;border-radius:var(--radius);background:var(--bg3);border:1px solid var(--line);font-weight:700;font-size:13px}
.btn-accent{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn-accent:hover{color:var(--accent-ink);filter:brightness(1.1)}
.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:24px;cursor:pointer}
.main-nav{background:var(--bg2);border-bottom:1px solid var(--line)}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.main-nav ul::-webkit-scrollbar{display:none}
.main-nav a{display:block;padding:12px 14px;font-weight:700;text-transform:uppercase;font-size:13px;white-space:nowrap}
.main-nav .current-menu-item>a,.main-nav a:hover{color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}

/* ---------- Ads ---------- */
.ad{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto}
.ad-label{font-size:10px;color:#555;text-transform:uppercase;letter-spacing:1px;margin-bottom:3px;line-height:1}
.ad-box{background:var(--bg2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.ad-box iframe{border:0;display:block}
.ad-728x90 .ad-box{width:728px;height:90px}
.ad-300x250 .ad-box{width:300px;height:250px}
.ad-250x900 .ad-box{width:250px;height:900px}
.ad-160x500 .ad-box{width:160px;height:500px}
.ad-row{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin:20px 0}
.ad-strip{margin:16px 0}
.ad-mobile-only{display:none}

/* side rails (160x500) on very wide screens */
.layout-rails{display:grid;grid-template-columns:160px minmax(0,1fr) 160px;gap:20px;max-width:calc(var(--maxw) + 360px);margin:0 auto;padding:0 16px}
.rail{padding-top:20px}
.rail .ad{position:sticky;top:130px}
.layout-rails>.content{min-width:0}

/* ---------- Section titles / sort tabs ---------- */
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 12px;flex-wrap:wrap}
.sec-head h1,.sec-head h2{font-size:20px;margin:0}
.sort-tabs{display:flex;gap:6px;flex-wrap:wrap}
.sort-tabs a{padding:6px 12px;background:var(--bg3);border-radius:var(--radius);font-size:13px;font-weight:700}
.sort-tabs a.active{background:var(--accent);color:var(--accent-ink)}

/* ---------- Video grid ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px 14px}
.card{min-width:0}
.card .thumb{position:relative;display:block;aspect-ratio:16/9;background:var(--bg3);border-radius:var(--radius);overflow:hidden}
.card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.card:hover .thumb img{transform:scale(1.04)}
.badge-dur{position:absolute;right:6px;bottom:6px;background:rgba(0,0,0,.8);color:#fff;font-size:12px;font-weight:700;padding:2px 6px;border-radius:3px}
.badge-hd{position:absolute;left:6px;top:6px;background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:700;padding:1px 5px;border-radius:3px}
.card .title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:8px 0 3px;font-size:14px;font-weight:700;line-height:1.3}
.card .meta{color:var(--muted);font-size:12px;display:flex;gap:10px}
.grid .ad-cell{display:flex;align-items:center;justify-content:center;grid-column:span 1}

/* ---------- Pagination ---------- */
.pagination{display:flex;justify-content:center;gap:6px;margin:30px 0;flex-wrap:wrap}
.pagination .page-numbers{padding:9px 14px;background:var(--bg3);border-radius:var(--radius);font-weight:700}
.pagination .current{background:var(--accent);color:var(--accent-ink)}

/* ---------- Single video ---------- */
.single-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;margin-top:20px}
.player{position:relative;display:block;aspect-ratio:16/9;background:#000;overflow:hidden;border-radius:var(--radius);cursor:pointer}
.player img{width:100%;height:100%;object-fit:cover;filter:brightness(.8);transition:filter .2s}
.player:hover img{filter:brightness(.6)}
.player .play{position:absolute;inset:0;margin:auto;width:92px;height:92px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(255,144,0,.25);transition:transform .2s}
.player:hover .play{transform:scale(1.08)}
.player .play svg{width:38px;height:38px;margin-left:6px;fill:var(--accent-ink)}
.player .bar{position:absolute;left:0;right:0;bottom:0;height:44px;background:linear-gradient(transparent,rgba(0,0,0,.85));display:flex;align-items:center;gap:12px;padding:0 14px;font-size:13px;color:#ddd}
.player .bar .prog{flex:1;height:4px;background:rgba(255,255,255,.25);border-radius:2px}
.player .bar .prog i{display:block;width:0;height:100%;background:var(--accent)}
.video-title{font-size:22px;margin:14px 0 8px;line-height:1.3}
.video-stats{display:flex;gap:16px;color:var(--muted);font-size:13px;flex-wrap:wrap;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}
.video-stats .watch{margin-left:auto}
.video-desc{background:var(--bg2);border-radius:var(--radius);padding:14px 16px;margin:14px 0;color:#ccc}
.video-desc p{margin:0 0 8px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.tags a{background:var(--bg3);padding:5px 10px;border-radius:3px;font-size:12px}
.tags a:hover{background:var(--accent);color:var(--accent-ink)}
.side-col .ad{margin-bottom:16px}
.side-col .sticky-ad{position:sticky;top:130px}

/* ---------- Pages ---------- */
.page-content{max-width:900px;margin:30px auto;background:var(--bg2);padding:28px 32px;border-radius:var(--radius);color:#ccc}
.page-content h1{color:#fff;margin-top:0}
.page-content h2{color:#fff;font-size:18px;margin-top:26px}
.page-content a{color:var(--accent)}

/* ---------- Footer ---------- */
.site-footer{background:var(--bg2);border-top:1px solid var(--line);margin-top:40px;padding:28px 0 20px;color:var(--muted);font-size:13px}
.ft-links{display:flex;flex-wrap:wrap;gap:6px 20px;justify-content:center;margin:10px 0 18px}
.ft-links a{color:#ccc;font-weight:700}
.ft-links a:hover{color:var(--accent)}
.ft-2257{max-width:1000px;margin:0 auto;text-align:center;font-size:12px;line-height:1.6;border-top:1px solid var(--line);padding-top:16px}
.ft-2257 a{color:var(--accent)}
.ft-copy{text-align:center;margin-top:12px;font-size:12px}
.rta{display:inline-block;border:1px solid #444;padding:2px 6px;font-size:11px;margin-left:6px;color:#aaa}

/* ---------- Age gate ---------- */
.age-gate{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:9999;display:none;align-items:center;justify-content:center;padding:16px}
.age-gate.show{display:flex}
.age-box{background:var(--bg2);max-width:520px;width:100%;padding:30px;border-radius:6px;text-align:center;border-top:4px solid var(--accent)}
.age-box h2{margin:0 0 10px;color:#fff}
.age-box p{color:#bbb;font-size:13px}
.age-box .btns{display:flex;gap:10px;justify-content:center;margin-top:18px}
.age-box .btns .btn{padding:12px 22px;font-size:14px;cursor:pointer}

/* ---------- Responsive ---------- */
@media (max-width:1360px){ .layout-rails{grid-template-columns:minmax(0,1fr)} .rail{display:none} }
@media (max-width:1100px){ .single-layout{grid-template-columns:1fr} .side-col .sticky-ad{position:static} .side-col .ad-250x900{display:none} .side-col{display:flex;gap:16px;flex-wrap:wrap;justify-content:center} }
@media (max-width:760px){
  .ad-728x90{display:none}
  .ad-mobile-only{display:flex}
  .hdr-top{height:auto;flex-wrap:wrap;padding:10px 16px;gap:10px}
  .search{order:3;flex-basis:100%;max-width:none}
  .hdr-right{display:none}
  .menu-toggle{display:block;margin-left:auto}
  .main-nav{display:none}
  .main-nav.open{display:block}
  .main-nav ul{flex-direction:column}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 8px}
  .grid .ad-cell{grid-column:1/-1}
  .video-title{font-size:18px}
  .page-content{padding:20px 16px}
}
@media (max-width:420px){ .grid{grid-template-columns:1fr} }
