/*
Theme Name: GeneratePress Child
Template: generatepress
Version: 1.4
*/

/*
 * VERSION 1.4 CHANGES:
 * ---------------------------------------------------------------
 * MERGED — Additional CSS (Customizer) fully merged into this file.
 *          After uploading this file, CLEAR the Additional CSS in
 *          Appearance → Customize → Additional CSS completely.
 *
 * REMOVED — All duplicate rules that existed in both style.css
 *           and Additional CSS. Single source of truth now.
 *
 * PRESERVED — Every unique rule from both sources.
 *             No visual changes — just consolidation.
 *
 * ALL v1.3 features preserved:
 *   Unclaimed banner, mobile claim, coupon field,
 *   hire a writer section styles.
 * ---------------------------------------------------------------
 */


/* ================================
   HERO SECTION
================================ */
.np-hero { text-align:center; padding:120px 20px; background:#f8f9fa; }
.np-hero h1 { font-size:42px; margin-bottom:15px; }
.np-hero p { font-size:18px; color:#555; margin-bottom:40px; }
.np-hero form { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.np-hero input, .np-hero select { flex:1 1 200px; min-width:0; }
.np-hero button { flex:0 0 auto; }


/* ================================
   SEARCH BAR
================================ */
.np-search-bar { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-bottom:25px; }
.np-search-bar input, .np-search-bar select { padding:12px; width:260px; border:1px solid #ddd; border-radius:6px; font-size:15px; }


/* ================================
   BUTTONS
================================ */
.np-btn { background:#0d6efd; color:#fff; padding:12px 24px; border:none; border-radius:6px; cursor:pointer; text-decoration:none; display:inline-block; }
.np-btn:hover { background:#0b5ed7; }

.np-sticky-cta { margin-top:20px; display:inline-block; }
.np-sticky-cta a { display:inline-flex; align-items:center; gap:8px; background:#fff; color:#0d6efd; border:2px solid #0d6efd; padding:10px 22px; border-radius:6px; font-size:15px; font-weight:600; text-decoration:none; transition:background 0.2s, color 0.2s; }
.np-sticky-cta a:hover { background:#0d6efd; color:#fff; }
.np-cta-icon { font-size:20px; font-weight:700; line-height:1; }


/* ================================
   LAYOUT
================================ */
.np-container { max-width:1200px; margin:0 auto; padding:70px 20px; }
.np-section-title { text-align:center; font-size:30px; margin-bottom:40px; }
.np-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:30px; }


/* ================================
   PROFILE CARDS
================================ */
.np-card { display:flex; gap:16px; align-items:flex-start; border:1px solid #eee; padding:20px; border-radius:10px; background:#fff; transition:all 0.25s ease; }
.np-card:hover { transform:translateY(-4px); box-shadow:0 10px 25px rgba(0,0,0,0.06); }
.np-card h3 { margin-bottom:10px; }
.np-card p { color:#666; font-size:14px; margin-bottom:15px; }

.np-card-photo { flex-shrink:0; width:70px; height:70px; border-radius:50%; overflow:hidden; }
.np-card-photo img { width:70px !important; height:70px !important; object-fit:cover; display:block; }

.np-card-body { flex:1; display:flex; flex-direction:column; gap:6px; }
.np-card-name { font-size:20px; font-weight:600; margin-bottom:6px; display:flex; align-items:center; gap:6px; }
.np-card-summary { color:#666; font-size:14px; margin-bottom:10px; line-height:1.6; }
.np-card-link { font-size:14px; font-weight:500; color:#0d6efd; text-decoration:none; margin-top:auto; }
.np-card-link:hover { text-decoration:underline; }

.np-badge { background:#0d6efd; color:#fff; padding:4px 8px; font-size:12px; border-radius:4px; display:inline-block; margin-bottom:12px; }

.np-verified-badge { display:inline-flex; vertical-align:middle; margin-left:6px; color:#22c55e; font-size:16px; }
.np-verified-badge svg { width:22px; height:22px; }


/* ================================
   INFO / ABOUT SECTION
================================ */
.np-info-section { background:#f8f9fa; padding:80px 20px; }
.np-info-intro { max-width:700px; margin:0 auto 50px; text-align:center; font-size:17px; color:#555; line-height:1.6; }

.np-faq-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:30px; }
.np-faq-item { background:#fff; border:1px solid #eee; padding:25px; border-radius:8px; }
.np-faq-item h3 { margin-bottom:10px; font-size:18px; }
.np-faq-item p { color:#666; font-size:14px; }


/* ================================
   FAQ ACCORDION (from Additional CSS)
================================ */
:root {
    --faq-primary: #2563eb;
    --faq-accent: #06b6d4;
    --faq-accent-glow: rgba(6, 182, 212, 0.3);
}

.np-section-center { margin-bottom:50px; }

#faq { background:linear-gradient(135deg, #f8f9fa, #f1f5f9); padding:60px 20px !important; }
#faq .np-section-label { display:inline-block; font-size:0.875rem; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--faq-accent); margin-bottom:15px; padding:8px 16px; background:rgba(6,182,212,0.1); border:1px solid rgba(6,182,212,0.3); border-radius:50px; }
#faq .np-section-title { font-size:2.5rem; font-weight:700; margin-bottom:12px; background:linear-gradient(135deg, #0a2a6e, #0891b2) !important; -webkit-background-clip:text !important; -webkit-text-fill-color:transparent !important; background-clip:text !important; letter-spacing:-1px; }
#faq .np-section-sub { font-size:1.125rem; color:#64748b; font-weight:400; margin-bottom:0; }

.np-faq-wrap { display:grid; gap:16px; }

/* FAQ item from Additional CSS — enhanced version */
#faq .np-faq-item { background:#ffffff; border:1px solid #e2e8f0; border-radius:12px; overflow:hidden; transition:all 0.3s cubic-bezier(0.34,1.56,0.64,1); position:relative; box-shadow:0 1px 3px rgba(0,0,0,0.05); padding:0; }
#faq .np-faq-item::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg, var(--faq-primary), var(--faq-accent), transparent); transform:scaleX(0); transform-origin:left; transition:transform 0.4s ease-out; z-index:10; }
#faq .np-faq-item:hover { border-color:var(--faq-accent); box-shadow:0 0 30px rgba(6,182,212,0.15), 0 8px 32px rgba(37,99,235,0.08); transform:translateY(-4px); }
#faq .np-faq-item:hover::before { transform:scaleX(1); }
#faq .np-faq-item.active { border-color:var(--faq-accent); box-shadow:0 0 40px var(--faq-accent-glow), 0 12px 40px rgba(37,99,235,0.12); }

#faq .np-faq-btn { width:100%; padding:20px 24px; background:transparent; border:none; color:#1e293b; font-size:1.125rem; font-weight:600; text-align:left; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; transition:all 0.3s ease; }
#faq .np-faq-btn:hover { color:var(--faq-accent); }
#faq .np-faq-btn:focus { outline:2px solid var(--faq-accent); outline-offset:2px; }
#faq .np-faq-item.active .np-faq-btn span { color:var(--faq-accent); }

#faq .np-faq-icon { display:flex; align-items:center; justify-content:center; width:32px; height:32px; background:linear-gradient(135deg, var(--faq-primary), var(--faq-accent)); border-radius:8px; font-size:1.5rem; color:white; font-weight:300; flex-shrink:0; transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1); line-height:1; }
#faq .np-faq-item.active .np-faq-icon { transform:rotate(45deg); box-shadow:0 0 20px var(--faq-accent-glow); }

#faq .np-faq-answer { max-height:0; overflow:hidden; transition:max-height 0.4s cubic-bezier(0.34,1.56,0.64,1); }
#faq .np-faq-answer-inner { padding:0 24px 24px; color:#64748b; line-height:1.7; font-size:0.95rem; }
#faq .np-faq-answer-inner strong { color:var(--faq-accent); font-weight:600; }


/* ================================
   FOOTER CTA
================================ */
.np-footer-cta { background:#0d6efd; color:#fff; text-align:center; padding:90px 20px; }
.np-footer-cta h2 { margin-bottom:20px; }


/* ================================
   PLATFORM STATISTICS
================================ */
.np-stats { background:#ffffff; padding:60px 20px; border-top:1px solid #eee; border-bottom:1px solid #eee; }
.np-stats-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); text-align:center; gap:30px; }
.np-stat h3 { font-size:34px; color:#0d6efd; margin-bottom:6px; }
.np-stat p { font-size:16px; color:#666; }


/* ================================
   BREADCRUMB
================================ */
.np-breadcrumb { max-width:1200px; margin:0 auto; padding:12px 20px 0; font-size:13px; color:#888; }
.np-breadcrumb a { color:#0d6efd; text-decoration:none; }
.np-breadcrumb a:hover { text-decoration:underline; }


/* ================================
   MEMBER DASHBOARD
================================ */
.np-dashboard { max-width:700px; margin:0 auto; padding:30px; background:#fff; border:1px solid #eee; border-radius:10px; }
.np-dashboard h2 { font-size:22px; margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid #eee; }
.np-dashboard p { font-size:15px; margin-bottom:12px; color:#444; }
.np-dashboard a { color:#0d6efd; text-decoration:none; font-weight:500; }
.np-dashboard a:hover { text-decoration:underline; }


/* ================================
   PROFILE PHOTO
================================ */
.profile-photo { text-align:center; margin-bottom:25px; }
.profile-photo img { max-width:230px; width:100%; border-radius:12px; box-shadow:0 8px 20px rgba(0,0,0,0.12); background:#fff; padding:6px; }


/* ================================
   PROFILE INFOBOX
================================ */
.profile-infobox { width:100%; border-collapse:collapse; background:#ffffff; border-radius:10px; overflow:hidden; box-shadow:0 3px 12px rgba(0,0,0,0.08); margin-bottom:25px; }
.profile-infobox th { text-align:left; background:#f7f7f7; padding:12px; font-weight:600; width:35%; border-bottom:1px solid #eaeaea; }
.profile-infobox td { padding:12px; border-bottom:1px solid #eaeaea; }


/* ================================
   DETAILS / SUMMARY ACCORDION
================================ */
details { background:#fff; border-radius:10px; border:1px solid #e6e6e6; padding:14px; margin-bottom:12px; }
summary { font-weight:600; font-size:17px; cursor:pointer; }
details[open] { box-shadow:0 2px 6px rgba(0,0,0,0.08); }


/* ================================
   HEADER COMPACT
================================ */
.main-title, h2.site-title, p.site-title, .site-branding-container .main-title { display:none !important; visibility:hidden !important; }
.site-header, .header, #masthead { padding-top:8px !important; padding-bottom:8px !important; margin-bottom:10px; }
.site-logo img, .custom-logo, .logo img { /* Logo size controlled by WordPress Customizer */ }
.site-header .container, .header-inner { display:flex; align-items:center; justify-content:space-between; }


/* ================================
   PREVENT HORIZONTAL OVERFLOW
================================ */
html, body { overflow-x:hidden; max-width:100%; }
.site-content, #primary, #content, .inside-site-content { display:block; width:100%; max-width:100%; }


/* ================================
   UNCLAIMED PROFILE BANNER
================================ */
.np-unclaimed-banner { background:linear-gradient(135deg, #fffbeb, #fef3c7); border:1px solid #fbbf24; border-radius:12px; padding:20px 24px; margin-bottom:24px; display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap; }
.np-unclaimed-banner-icon { font-size:28px; flex-shrink:0; }
.np-unclaimed-banner-content { flex:1; min-width:200px; }
.np-unclaimed-banner-title { font-size:16px; font-weight:700; color:#92400e; margin:0 0 6px; }
.np-unclaimed-banner-text { font-size:14px; color:#a16207; margin:0 0 14px; line-height:1.6; }
.np-unclaimed-claim-btn { background:#d97706; color:#fff; border:none; padding:10px 22px; border-radius:8px; font-size:14px; font-weight:600; cursor:pointer; margin-right:8px; transition:background 0.2s; }
.np-unclaimed-claim-btn:hover { background:#b45309; }


/* ================================
   MOBILE CLAIM BUTTON
================================ */
.np-mobile-claim { display:none; margin-bottom:20px; }
.np-mobile-claim-inner { display:flex; gap:8px; flex-wrap:wrap; }
.np-mobile-claim-btn { flex:1; background:#28a745; color:#fff; border:none; padding:11px 16px; border-radius:8px; font-size:14px; font-weight:600; cursor:pointer; min-width:140px; transition:background 0.2s; }
.np-mobile-claim-btn:hover { background:#218838; }
.np-mobile-report-btn { background:#f8f9fa; color:#dc3545; border:1px solid #dee2e6; padding:11px 16px; border-radius:8px; font-size:14px; font-weight:600; cursor:pointer; transition:background 0.2s; }
.np-mobile-report-btn:hover { background:#e9ecef; }


/* ================================
   COUPON FIELD
================================ */
.np-coupon-field { display:flex; gap:8px; }
.np-coupon-input { flex:1; padding:10px 14px; border:1px solid #d2d2d7; border-radius:8px; font-size:14px; text-transform:uppercase; letter-spacing:0.5px; outline:none; transition:border-color 0.2s; }
.np-coupon-input:focus { border-color:#0071e3; }
.np-coupon-apply-btn { background:#f5f5f7; color:#0a0a0a; padding:10px 18px; border:1px solid #d2d2d7; border-radius:8px; font-size:14px; font-weight:600; cursor:pointer; transition:background 0.2s; }
.np-coupon-apply-btn:hover { background:#e5e5ea; }
.np-coupon-msg { margin-top:8px; font-size:13px; min-height:20px; }
.np-coupon-msg.success { color:#15803d; font-weight:600; }
.np-coupon-msg.error { color:#dc2626; }
.np-price-original { font-size:16px; color:#86868b; text-decoration:line-through; }
.np-discount-label { padding:3px 10px; border-radius:20px; font-size:12px; font-weight:600; margin-left:8px; }
.np-discount-label.verify { background:#dcfce7; color:#15803d; }
.np-discount-label.writer { background:#f3e8ff; color:#7c3aed; }


/* ================================
   HIRE A WRITER SECTION
================================ */
.np-hire-writer-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.np-hire-writer-tags { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:28px; }
.np-hire-writer-tag { background:#f5f5f7; padding:8px 14px; border-radius:8px; font-size:13px; font-weight:500; color:#424245; }
.np-hire-writer-btn { display:inline-block; background:#7c3aed; color:#fff; padding:16px 32px; border-radius:980px; font-size:16px; font-weight:600; text-decoration:none; transition:background 0.3s; }
.np-hire-writer-btn:hover { background:#6d28d9; color:#fff; }

.np-how-it-works-card { background:#fff; border:1px solid rgba(0,0,0,0.08); border-radius:18px; padding:32px 28px; box-shadow:0 4px 32px rgba(0,0,0,0.08); }
.np-how-step { display:flex; gap:12px; align-items:flex-start; margin-bottom:16px; }
.np-how-step:last-child { margin-bottom:0; }
.np-how-step-num { background:#0071e3; color:#fff; width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; flex-shrink:0; }
.np-how-step-num.done { background:#22c55e; }
.np-how-step-title { font-weight:600; font-size:14px; margin:0 0 3px; }
.np-how-step-desc { font-size:13px; color:#86868b; margin:0; }
.np-hire-writer-tip { background:linear-gradient(135deg, #f5f3ff, #ede9fe); border:1px solid #ddd6fe; border-radius:10px; padding:14px 16px; text-align:center; margin-top:20px; }
.np-hire-writer-tip p { font-size:13px; color:#7c3aed; font-weight:600; margin:0; }


/* ================================
   MOBILE RESPONSIVE
================================ */
@media (max-width:768px) {
    .np-hero h1 { font-size:30px; }
    .np-card { flex-direction:column; align-items:center; text-align:center; }
    .np-card-photo { width:80px; height:80px; margin:0 auto; }
    .np-card-photo img { width:80px !important; height:80px !important; }
    .np-card-name { justify-content:center; font-size:18px; }
    .np-dashboard { padding:20px; }
    .np-stats-grid { grid-template-columns:repeat(3, 1fr); }
    .np-mobile-claim { display:block; }
    .np-hire-writer-grid { grid-template-columns:1fr; gap:24px; }
    .np-unclaimed-banner { flex-direction:column; gap:10px; }

    /* FAQ mobile from Additional CSS */
    #faq .np-section-title { font-size:2rem; }
    #faq .np-section-sub { font-size:1rem; }
    #faq .np-faq-btn { padding:16px; font-size:1rem; }
    #faq .np-faq-answer-inner { padding:0 16px 16px; font-size:0.9rem; }
    #faq .np-faq-icon { width:28px; height:28px; font-size:1.25rem; }
}