/*
Theme Name: Pornovirtuale
Theme URI: https://pornovirtuale.com
Author: Pornovirtuale
Description: Tema personalizzato per Pornovirtuale.com — cam VR, stanze porno virtuale e contenuti adulti in realtà virtuale. Include age gate 18+, menu responsive e sezioni SEO.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.1
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: pornovirtuale
Tags: adult-content, custom-menu, featured-images, translation-ready
*/

/* --- Reset base --- */
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family: 'Roboto', sans-serif; background: #1E1E2F; color:#fff; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }

/* --- Header --- */
header {
  position: fixed;
  top:0; left:0; width:100%;
  background: rgba(30,30,47,0.95);
  display:flex; justify-content:space-between; align-items:center;
  padding:15px 30px;
  z-index:1000;
  transition: top 0.3s;
}
header .logo { font-family: 'Orbitron', sans-serif; font-size:1.8em; color:#FF3C5B; letter-spacing:2px; }

nav { display:flex; gap:25px; transition: all 0.3s; }

/* --- Link principali --- */
nav a { font-weight:500; color:#fff; transition:0.3s; padding:5px 10px; display:block; }
nav a:hover { color:#FF6F91; }

/* --- Dropdown Menu --- */
nav .dropdown { position: relative; }
nav .dropdown > a::after {
  content: "▼";
  margin-left: 5px;
  font-size: 0.6em;
  vertical-align: middle;
  transition: transform 0.3s;
}
nav .dropdown:hover > a::after { transform: rotate(-180deg); }

nav .dropdown-content {
  display: none;
  position: absolute;
  top:100%;
  left:0;
  background:#2B2B3C;
  min-width:200px;
  border-radius:8px;
  overflow:hidden;
  flex-direction:column;
  z-index:1000;
}
nav .dropdown-content a {
  padding:10px 15px;
  display:block;
  color:#fff;
  font-weight:500;
  transition:0.3s;
}
nav .dropdown-content a:hover { background:#FF3C5B; color:#fff; }

/* Mostra il dropdown al passaggio del mouse (desktop) */
nav .dropdown:hover .dropdown-content { display:flex; flex-direction:column; }

/* --- Hamburger menu --- */
.hamburger { display:flex; flex-direction:column; cursor:pointer; gap:5px; }
.hamburger div { width:25px; height:3px; background:#FF3C5B; }

/* Menu scomparsa mobile */
nav { position: fixed; top:0; left:-100%; flex-direction:column; background:#1E1E2F; width:300px; height:100vh; padding:20px; gap:20px; z-index:999; }
nav.active { left:0; }

/* Mobile dropdown */
@media (max-width:1024px){
  nav { width:250px; padding:30px; gap:10px; }
  nav .dropdown-content { position: static; display:none; width:100%; margin-left:0; border-radius:6px; }
  nav .dropdown.active .dropdown-content { display:flex; flex-direction:column; }

  nav .dropdown > a::after { content:"▶"; float:right; transform:rotate(0deg); }
  nav .dropdown.active > a::after { transform:rotate(90deg); }
}

/* --- Hero Section --- */
.hero {
  margin-top:80px;
  position:relative;
  background: url('https://images.unsplash.com/photo-1573164574395-5f45060c5c5f?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-4.0.3&q=80&w=1200') no-repeat center/cover;
  height:400px;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.hero::after {
  content:""; position:absolute; top:0; left:0; width:100%; height:100%;
  background: rgba(0,0,0,0.6);
  pointer-events: none; /* permette il click sugli elementi sovrapposti */
}
.hero-content {
  position: relative;
  text-align:center;
  z-index: 2; /* fondamentale: mantiene il contenuto sopra l'overlay */
}
.hero-content h1 { font-family:'Orbitron', sans-serif; font-size:2.5em; color:#FF3C5B; margin-bottom:15px; }
.hero-content p { font-size:1.1em; margin-bottom:20px; color:#fff; }

/* btn applicabile sia ad <a> che a <button> */
.hero-content .btn,
.hero-content a.btn {
  display: inline-block;
  padding:12px 30px;
  background:#FF3C5B;
  color:#fff;
  border-radius:8px;
  border: none;
  cursor:pointer;
  font-weight:600;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s;
  text-decoration: none;
  text-align: center;
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
}
.hero-content .btn:hover,
.hero-content a.btn:hover { background:#FF6F91; transform: translateY(-2px); }
.hero-content .btn:focus,
.hero-content a.btn:focus { outline: 3px solid rgba(255,60,91,0.18); outline-offset: 3px; }

/* --- Sezione Stanze Popolari --- */
.section { padding:50px 30px; }
.section h2 { font-family:'Orbitron', sans-serif; font-size:2em; color:#FFD700; margin-bottom:30px; text-align:center; }
.grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap:20px; }

/* Card generiche e hover */
.card, .card1, .card2, .card3, .card4, .card5 {
  background:#2B2B3C; border-radius:12px; overflow:hidden; position:relative;
  cursor:pointer;
  transition: transform 0.3s, box-shadow 0.3s;
  -webkit-user-select: none; user-select: none;
}
.card:hover, .card1:hover, .card2:hover, .card3:hover, .card4:hover, .card5:hover {
  transform: scale(1.05);
  box-shadow: 0 0 20px #FF3C5B;
}
.card img, .card1 img, .card2 img, .card3 img, .card4 img, .card5 img { width:100%; height:180px; object-fit:cover; }

.card-content { padding:15px; }
.card-content h3 { font-family:'Orbitron', sans-serif; font-size:1.2em; color:#FF3C5B; margin-bottom:10px; }
.card-content .btn,
.card-content a.btn {
  padding:8px 15px;
  background:#FFD700;
  color:#1E1E2F;
  border:none;
  border-radius:6px;
  font-weight:600;
  cursor:pointer;
  transition: background 0.18s, transform 0.12s;
  text-decoration:none;
  display:inline-block;
}
.card-content .btn:hover,
.card-content a.btn:hover { background:#FF6F91; color:#fff; transform: translateY(-1px); }

/* --- Stato attivo al click --- */
.card.active, .card1.active, .card2.active, .card3.active, .card4.active, .card5.active {
  transform: scale(1.05);
  box-shadow: 0 0 20px #FF3C5B;
}

/* --- Contenitore --- */
.container { max-width:1200px; margin:0 auto; }

/* --- Sezione Anteprime Stanze --- */
.thumbnails { padding:50px 30px; background:#232336; }
.thumbnails h2 {
  font-family:'Orbitron', sans-serif;
  font-size:2em; color:#FFD700;
  margin-bottom:30px; text-align:center;
}

.preview-grid {
  display:grid;
  grid-template-columns: repeat(auto-fit,minmax(200px,1fr));
  gap:20px;
}

.preview-card {
  background:#2B2B3C;
  border-radius:12px;
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:12px;
  border-top:3px solid #FF3C5B;
  transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
}
.preview-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 20px rgba(255,60,91,0.45);
  border-color:#FFD700;
}
.preview-card:focus-visible { outline:3px solid rgba(255,60,91,0.5); outline-offset:3px; }

.preview-name {
  font-family:'Orbitron', sans-serif;
  font-size:1.05em; color:#fff;
}

.preview-meta {
  display:flex; align-items:center; justify-content:space-between;
  font-size:0.85em; color:#aaa;
}

.preview-tag {
  background:#FF3C5B; color:#fff;
  padding:3px 10px; border-radius:20px;
  font-weight:600; font-size:0.85em;
  letter-spacing:1px; text-transform:uppercase;
}

.preview-viewers { color:#FFD700; font-weight:500; }
.preview-viewers::before { content:"\1F441 "; }

/* --- Footer --- */
footer {
  background:#1E1E2F; padding:30px; text-align:center; color:#aaa; font-size:0.9em;
  border-top:2px solid #FF3C5B;
}
footer a { color:#FFD700; }

/* --- Content hub (SEO) --- */
.content-hub { padding: 50px 30px; background: #232336; border-top: 1px solid #33334a; }
.content-hub .container { max-width: 900px; }
.content-hub h2 { font-family:'Orbitron', sans-serif; font-size:1.6em; color:#FFD700; margin:0 0 18px; }
.content-hub p { color:#ddd; line-height:1.7; margin: 0 0 14px; font-size:1.05em; }
.content-list { color:#ddd; margin: 14px 0 20px 22px; line-height:1.7; }
.content-list li { margin-bottom: 6px; }
.content-list li::marker { color:#FF3C5B; }

.internal-links { display:flex; flex-wrap:wrap; gap:10px; margin: 22px 0 26px; }
.internal-links a { background:#2B2B3C; color:#FFD700; padding:8px 14px; border-radius:6px; font-size:.9em; font-weight:500; border:1px solid #3a3a52; transition: background .2s, color .2s; }
.internal-links a:hover { background:#FF3C5B; color:#fff; border-color:#FF3C5B; }

.live-embed-placeholder { background:#1a1a28; border:2px dashed #3a3a52; border-radius:12px; padding:30px; text-align:center; margin-top: 22px; }
.live-embed-hint { color:#888; font-size:.9em; margin:0; }

/* accessibilità mobile */
@media (max-width: 600px) {
  .content-hub { padding: 30px 18px; }
  .internal-links a { font-size:.85em; }
}

/* --- Tema WordPress: elementi aggiuntivi --- */
.pv-nav { display:flex; gap:25px; transition: all .3s; list-style:none; }
.pv-nav > li { list-style:none; }
.pv-nav li a { font-weight:500; color:#fff; transition:.3s; padding:5px 10px; display:block; }
.pv-nav li a:hover { color:#FF6F91; }
.pv-nav .dropdown { position:relative; }
.pv-nav .dropdown > a::after {
  content: "▼"; margin-left:5px; font-size:.6em; vertical-align:middle; transition: transform .3s;
}
.pv-nav .dropdown:hover > a::after { transform: rotate(-180deg); }
.pv-nav .dropdown-content {
  display:none; position:absolute; top:100%; left:0; background:#2B2B3C;
  min-width:200px; border-radius:8px; overflow:hidden; flex-direction:column; z-index:1000;
}
.pv-nav .dropdown-content li a { padding:10px 15px; display:block; color:#fff; font-weight:500; transition:.3s; }
.pv-nav .dropdown-content li a:hover { background:#FF3C5B; color:#fff; }
.pv-nav .dropdown:hover .dropdown-content { display:flex; flex-direction:column; }

@media (max-width:1024px){
  .pv-nav { width:250px; padding:30px; gap:10px; flex-direction:column; }
  .pv-nav .dropdown-content { position:static; display:none; width:100%; margin-left:0; border-radius:6px; }
  .pv-nav .dropdown.active .dropdown-content { display:flex; flex-direction:column; }
  .pv-nav .dropdown > a::after { content:"\25B6"; float:right; transform:rotate(0deg); }
  .pv-nav .dropdown.active > a::after { transform:rotate(90deg); }
}

.pv-page-head { padding-top:110px; }
.pv-page-title { font-family:'Orbitron',sans-serif; font-size:2.2em; color:#FFD700; text-align:center; margin-bottom:26px; }
.pv-page-body { padding-bottom:40px; }
.pv-page-body .container p { color:#ddd; line-height:1.7; margin:0 0 14px; }
.pv-page-body ul { color:#ddd; margin:14px 0 20px 22px; line-height:1.7; }
.pv-single .pv-page-body { font-size:1.05em; }
.pv-entry-meta { color:#aaa; text-align:center; margin-bottom:20px; }
.pv-sidebar { padding:0 30px 40px; max-width:1200px; margin:0 auto; }
.pv-sidebar .widget { background:#2B2B3C; border-radius:12px; padding:18px; margin-bottom:20px; }
.pv-sidebar .widget-title { font-family:'Orbitron',sans-serif; color:#FF3C5B; margin-bottom:10px; font-size:1.05em; }
.pv-sidebar ul { list-style:none; margin:0; }
.pv-sidebar li { margin-bottom:8px; }
.pv-sidebar a { color:#FFD700; }
.pagination { margin:30px 0; text-align:center; }
.pagination .nav-links a,.pagination .page-numbers { display:inline-block; padding:8px 14px; background:#2B2B3C; border-radius:6px; margin:0 3px; color:#FFD700; }
.pagination .page-numbers.current { background:#FF3C5B; color:#fff; }
img { max-width:100%; height:auto; }

/* --- Form (login / registrazione) --- */
.pv-form { max-width:420px; }
.pv-form label { display:block; margin:14px 0 6px; font-weight:500; color:#fff; font-size:.95em; }
.pv-form input[type="text"], .pv-form input[type="email"], .pv-form input[type="password"] {
  width:100%; padding:12px 14px; background:#1a1a28; border:1px solid #3a3a52; border-radius:8px;
  color:#fff; font-family:'Roboto',sans-serif; font-size:1em;
}
.pv-form input:focus { outline:none; border-color:#FF3C5B; box-shadow:0 0 0 3px rgba(255,60,91,.2); }
.pv-form button.btn, .pv-form .btn {
  margin-top:18px; padding:12px 30px; background:#FF3C5B; color:#fff; border:0; border-radius:8px;
  font-weight:600; cursor:pointer; transition:background .18s, transform .12s; display:inline-block;
}
.pv-form button.btn:hover { background:#FF6F91; transform:translateY(-1px); }
.pv-form .note { color:#aaa; font-size:.9em; margin-top:12px; }
.pv-form .note a { color:#FFD700; }
.pv-nav { padding:0; margin:0; }
