/* ==========================================================================
   MySexyGals • Polished Theme (drop-in)
   - Dark, modern, professional
   - Works with your existing class names
   - No external fonts required
   ========================================================================== */

/* ---------- CSS Variables (easy theming) ---------- */
:root{
  --bg: #0b0c10;
  --bg-elev-1:#101217;
  --bg-elev-2:#141723;
  --card:#14161b;
  --muted:#bfc6d6;
  --text:#f6f8ff;
  --border:rgba(255,255,255,.08);

  --brand:#7c5cff;
  --brand-2:#23d5ab;
  --success:#34d399;
  --danger:#ef4444;
  --warning:#f59e0b;

  --radius:14px;
  --radius-sm:10px;
  --shadow:0 10px 24px rgba(0,0,0,.35), 0 2px 6px rgba(0,0,0,.25);

  --transition: .22s ease;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, ui-sans-serif, system-ui, "Segoe UI", Arial, sans-serif;
  background: radial-gradient(1200px 800px at 10% -10%, rgba(124,92,255,.08), transparent 40%),
              radial-gradient(1000px 700px at 110% 10%, rgba(35,213,171,.08), transparent 40%),
              var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(16,18,23,.72);
  backdrop-filter: saturate(1.2) blur(8px);
  border-bottom:1px solid var(--border);
}
.site-header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;
}
.brand{
  font-weight:900;letter-spacing:.4px;
  font-size:1.15rem;
}
.main-nav{display:flex;gap:10px;align-items:center}
.main-nav a{
  padding:9px 12px;border-radius:var(--radius-sm);
  border:1px solid var(--border);background:linear-gradient(180deg, var(--bg-elev-1), var(--bg-elev-2));
  transition:transform var(--transition), background var(--transition), border-color var(--transition);
}
.main-nav a:hover{
  transform:translateY(-1px);
  border-color:rgba(255,255,255,.18);
}

/* ---------- Buttons ---------- */
.btn, .btn-outline{
  display:inline-block;text-align:center;cursor:pointer;user-select:none;
  padding:9px 12px;border-radius:var(--radius-sm);
  transition:transform var(--transition), box-shadow var(--transition), opacity var(--transition);
}
.btn{
  background:linear-gradient(135deg,var(--brand),var(--brand-2));
  color:#fff;border:0;box-shadow:0 6px 18px rgba(124,92,255,.28);
}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(124,92,255,.35)}
.btn:active{transform:translateY(0)}
.btn-outline{
  border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;
}
.btn-outline:hover{border-color:rgba(255,255,255,.45)}
.success{background:linear-gradient(135deg,#34d399,#059669);box-shadow:0 6px 18px rgba(52,211,153,.28)}
.success:hover{box-shadow:0 10px 24px rgba(52,211,153,.35)}

/* ---------- Alerts ---------- */
.alert{
  padding:12px;border-radius:var(--radius-sm);margin:12px 0;
  border:1px solid var(--border);background:var(--bg-elev-1);
}
.alert.ok{border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.12)}
.alert.error{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.1)}

/* ---------- Forms ---------- */
.form input,.form select,.form textarea{
  width:100%;padding:12px 12px 11px;
  border-radius:12px;border:1px solid var(--border);
  background:linear-gradient(180deg, var(--bg-elev-1), var(--bg-elev-2));
  color:var(--text);outline:none;transition:border-color var(--transition), box-shadow var(--transition);
}
.form input:focus,.form select:focus,.form textarea:focus{
  border-color:rgba(124,92,255,.55);
  box-shadow:0 0 0 3px rgba(124,92,255,.2);
}
.form label{display:block;margin:12px 0 6px;font-weight:600;color:var(--muted)}
.auth .form{max-width:460px;margin-top:14px}

/* ---------- Grid / Cards ---------- */
.grid{
  display:grid;gap:18px;margin:18px 0 44px;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
}
.card{
  background:linear-gradient(180deg, var(--card), #121419);
  border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);transform:translateZ(0);
  transition:transform var(--transition), border-color var(--transition);
}
.card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.12)}
.thumb{height:210px;background:#0e1016;overflow:hidden;position:relative}
.thumb.big{height:auto}
.thumb img{width:100%;height:100%;object-fit:cover}
.card-body{padding:14px}
.card-body h3{margin:.1rem 0 .35rem;font-size:1.02rem}
.muted{color:var(--muted);font-size:.92rem}
.excerpt{margin:.55rem 0 0;color:#d8deeb;line-height:1.5}

/* (Dashboard) status badges — renamed from .badge to avoid conflicts */
.status-badge{
  position:absolute;top:10px;right:10px;
  padding:4px 9px;border-radius:999px;
  border:1px solid var(--border);font-size:.75rem;background:rgba(0,0,0,.25);
}
.status-badge.pending{background:rgba(245,158,11,.18);border-color:rgba(245,158,11,.45)}
.status-badge.approved{background:rgba(16,185,129,.18);border-color:rgba(16,185,129,.45)}
.status-badge.rejected{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.45)}

.actions{display:flex;gap:10px;margin-top:12px}
.actions .btn,.actions .btn-outline{flex:1}

/* ---------- Stats & Filters (Dashboard) ---------- */
.stats{
  display:grid;gap:14px;margin:16px 0;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.stat{
  background:linear-gradient(180deg, var(--card), #121419);
  border:1px solid var(--border);border-radius:12px;padding:16px;text-align:center;
}
.stat .num{font-weight:800;color:var(--brand);font-size:1.7rem}

.chips{display:flex;gap:8px;align-items:center;margin:12px 0;flex-wrap:wrap}
.chip{
  padding:7px 11px;border-radius:999px;border:1px solid var(--border);
  background:linear-gradient(180deg, var(--bg-elev-1), var(--bg-elev-2));color:var(--muted);
  transition:all var(--transition)
}
.chip.active{color:#fff;border-color:rgba(255,255,255,.18)}

/* ---------- City Hero / Breadcrumbs ---------- */
.hero{
  background:linear-gradient(180deg, rgba(20,22,27,.8), rgba(16,18,23,.8));
  border-bottom:1px solid var(--border);padding:26px 0;margin-top:0
}
.hero h1{margin:0 0 10px;font-size:1.6rem}
.hero-form select{
  padding:12px;border-radius:12px;color:#fff;
  background:linear-gradient(180deg, var(--bg-elev-1), var(--bg-elev-2));
  border:1px solid var(--border)
}
.breadcrumbs{margin:10px 0 0;color:var(--muted)}
.breadcrumbs a{color:var(--muted);text-decoration:underline}
.breadcrumbs a:hover{color:#fff}

/* ---------- Pagination ---------- */
.pagination{
  display:flex;gap:10px;align-items:center;justify-content:center;margin:18px 0
}
.page{
  padding:8px 12px;border:1px solid var(--border);border-radius:10px;
  background:linear-gradient(180deg, var(--bg-elev-1), var(--bg-elev-2));
  transition:transform var(--transition), border-color var(--transition)
}
.page:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.18)}
.page.current{background:#1a1d24;border-color:rgba(255,255,255,.2)}

/* ---------- Footer ---------- */
.site-footer{
  border-top:1px solid var(--border);margin-top:26px;padding:18px 0;
  background:rgba(16,18,23,.72);backdrop-filter:saturate(1.15) blur(6px);
  color:var(--muted)
}
.site-footer a{text-decoration:underline}
.site-footer a:hover{color:#fff}

/* ---------- Responsive tweaks ---------- */
@media (max-width: 760px){
  .main-nav{gap:6px}
  .main-nav a{padding:8px 10px}
  .thumb{height:180px}
  .brand{font-size:1rem}
}

/* Details list in model cards */
.details-list{
  list-style:none; padding:10px 0 0; margin:8px 0 0;
  display:grid; gap:6px;
}
.details-list li{
  display:flex; gap:8px; align-items:flex-start;
  border-bottom:1px dashed rgba(255,255,255,.08);
  padding-bottom:6px;
}
.details-list li:last-child{ border-bottom:0; padding-bottom:0; }
.details-list li span{
  min-width:92px; color:#bfc6d6; font-weight:600;
}
.details-list li.desc{ line-height:1.5 }

/* =======================================================================
   Model Card layout for city listings (Portrait 350x460 style)
   ======================================================================= */

/* 3-up grid on bigger screens */
.grid.cards-3{
  display:grid;
  gap:18px;
  grid-template-columns:1fr;
  margin:18px 0 44px;
}
@media (min-width:640px){ .grid.cards-3{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .grid.cards-3{ grid-template-columns:repeat(3,1fr); } }

/* Card shell */
.model-card{
  background:#0e1016;
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
  transform:translateZ(0);
  transition:transform var(--transition), border-color var(--transition);
}
.model-card:hover{ transform:translateY(-3px); border-color:rgba(255,255,255,.12); }

/* Ensure legacy .thumb height doesn't apply inside model cards */
.model-card .thumb{
  height:auto;
  position: relative;      /* needed for badge positioning */
  overflow: hidden;
  border-radius: 5px;      /* rounded corners for the media box */
}

/* Portrait thumbnail box ~350x460 ratio (scales responsively) */
.thumb{ display:block; }
.ratio-350x460{
  width:100%;
  aspect-ratio: 350 / 460;
  background:#0f1117;      /* subtle dark fill behind letterboxing if any */
  display:block;
  border-radius: 5px;
}
.ratio-350x460 img{
  width:100%;
  height:100%;
  object-fit: cover;        /* fills box; may crop */
  object-position: top;     /* bias to show face */
  display:block;
  border-radius: 5px;
  transition: transform .35s ease;
}
.ratio-350x460:hover img{ transform:none; }

/* Model-card badges (Verified & Featured) */
.model-card .badge{
  position:absolute;
  top:10px;
  z-index:2;
  display:inline-block;      /* don't stretch */
  width:auto;                /* shrink to fit */
  padding:4px 10px 4px 26px; /* room for icon on left */
  color:#fff;
  font-weight:700;
  font-size:.8rem;
  line-height:1;
  border-radius:6px;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
  left:auto; right:auto;     /* reset any global rules */
}

/* Verified: top-left */
.model-card .badge.verified{
  left:10px;
  background:#16a34a;
}
.model-card .badge.verified::before{
  content:"✔";
  position:absolute; left:8px; font-size:.9rem;
}

/* Featured: top-right */
.model-card .badge.featured{
  right:10px;
  background:#f59e0b;
}
.model-card .badge.featured::before{
  content:"⭐";
  position:absolute; left:8px; font-size:.9rem;
}

/* Body */
.model-body{ padding:16px; }

.model-title{
  font-size:1.15rem; line-height:1.25; margin:0 0 8px;
}
.model-title a{ color:#fff; text-decoration:none; }
.model-title a:hover{ text-decoration:underline; }

.model-desc{
  margin:0 0 12px; color:#cfd5e6; line-height:1.55;
}

/* Reuse .chips/.chip; ensure spacing here */
.model-card .chips{ margin:0 0 14px; }

/* Action buttons row */
.actions{ display:flex; gap:10px; flex-wrap:wrap; }

/* WhatsApp / Call / View variants */
.btn.wapp { background:#25D366; color:#0b0c10; border:0; }
.btn.call { background:#4c8bf7; color:#fff; border:0; }
.btn.outline{ background:transparent; color:#dfe5f7; border:1px solid rgba(255,255,255,.25); }
@media (hover:hover){
  .btn.outline:hover{ border-color:#7c5cff; color:#fff; background:#7c5cff; }
}

/* Clickable chips */
.chip {
  padding:7px 11px;
  border-radius:999px;
  border:1px solid var(--border);
  background:linear-gradient(180deg, var(--bg-elev-1), var(--bg-elev-2));
  color:var(--muted);
  font-size:.9rem;
  transition:all var(--transition);
  text-decoration:none;
  display:inline-block;
}
.chip:hover {
  color:#fff;
  border-color:rgba(255,255,255,.18);
}

/* ---------- Ad Detail Page ---------- */
.ad-detail {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 20px;
  margin: 20px 0;
}

.ad-detail h1 {
  margin-top: 0;
  font-size: 1.8rem;
  color: var(--danger);
}

.ad-detail .meta {
  color: var(--muted);
  margin-bottom: 1rem;
}

.ad-info h2 {
  margin-top: 1.2rem;
  font-size: 1.3rem;
  color: #fff;
}

.contact-box {
  text-align: center;
  padding: 15px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg-elev-1);
  box-shadow: var(--shadow);
}

.contact-box img {
  border-radius: 8px;
  margin-bottom: 12px;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.contact-box h3 {
  margin: 10px 0;
  font-size: 1.2rem;
}

.contact-box .views {
  margin-top: 10px;
  color: var(--danger);
  font-weight: bold;
}

.personal-info {
  margin-top: 20px;
}
.personal-info table {
  width: 100%;
  border-collapse: collapse;
}
.personal-info td {
  padding: 10px;
  border: 1px solid var(--border);
}
.personal-info td:first-child {
  background: var(--danger);
  color: #fff;
  font-weight: bold;
  width: 35%;
}

/* Similar Ads */
.similar-ads { margin-top: 40px; }
.similar-ads h2 { margin-bottom: 15px; }

/* ---------- Responsive for Mobile ---------- */
@media (max-width: 768px) {
  .ad-detail {
    grid-template-columns: 1fr;
  }

  .ad-detail h1 {
    font-size: 1.5rem;
    text-align: center;
  }

  /* Make the contact image full width on mobile */
  .contact-box img {
    width: 100%;
    max-width: none;       /* remove the 320px cap */
    height: auto;          /* keep natural aspect ratio */
    margin: 0 0 12px;      /* no horizontal centering needed */
    object-fit: cover;
  }

  .personal-info table td {
    font-size: 0.95rem;
    padding: 8px;
  }
}
#city-faq details{
  border:1px solid var(--border);
  background:var(--bg-elev-1);
  border-radius:10px;
  margin:10px 0;
  padding:10px 12px;
}
#city-faq summary{
  cursor:pointer;
  font-weight:700;
  color:#fff;
}
#city-faq details > *:not(summary){ color:#dfe5f7; margin-top:8px; }

/* ---------------------------------------------
   Link styling inside SEO content / City pages
   --------------------------------------------- */
.seo-block a,
#city-faq a {
  color: #7c5cff;                     /* brand purple */
  text-decoration: underline;
  text-underline-offset: 2px;         /* nicer underline spacing */
  text-decoration-thickness: 1.5px;
  transition: color .2s ease, text-decoration-thickness .2s ease;
}

.seo-block a:hover,
#city-faq a:hover {
  color: #a38dff;                     /* lighter on hover */
  text-decoration-thickness: 2px;     /* slightly thicker under hover */
}

/* If you ever place "button-style" anchors within content, keep them non-underlined */
.seo-block a.btn,
.seo-block .btn,
#city-faq a.btn,
#city-faq .btn {
  text-decoration: none !important;
  color: inherit;                      /* buttons keep their own colors */
}
