/*
Theme Name: RewardProof Child
Theme URI: https://rewardproof.com/
Description: Custom child theme for RewardProof — independent sweepstakes reviews. Trust-first design: disclosure near CTAs, verdict up top, proof adjacent. Built for GeneratePress.
Author: RewardProof
Author URI: https://rewardproof.com/
Template: generatepress
Version: 1.4.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rewardproof-child
*/

/* ============ RewardProof brand system ============ */
:root{
  --rp-navy:#16294D;
  --rp-blue:#2563EB;
  --rp-blue-dark:#1E40AF;
  --rp-green:#15803D;
  --rp-amber:#B45309;
  --rp-amber-bg:#FFFBEB;
  --rp-danger:#DC2626;
  --rp-danger-bg:#FEF2F2;
  --rp-bg:#F7F9FC;
  --rp-card:#FFFFFF;
  --rp-text:#1E293B;
  --rp-muted:#64748B;
  --rp-border:#E2E8F0;
  --rp-radius:12px;
  --rp-shadow:0 2px 16px rgba(22,41,77,.06);
}

/* ---- base ---- */
body{ background-color:var(--rp-bg); }
.entry-content, .entry-content p, .entry-content li{ color:var(--rp-text); }
h1,h2,h3,h4{ color:var(--rp-navy); letter-spacing:-0.02em; }
.entry-content h2{ margin-top:2em; }
.entry-content a:not(.wp-block-button__link):not(.button){
  color:var(--rp-blue); text-decoration:underline; text-underline-offset:3px;
}
.entry-content a:not(.wp-block-button__link):not(.button):hover{ color:var(--rp-blue-dark); }

/* keyboard focus: 2px brand-blue outline on all interactive elements */
a:focus-visible, button:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible,
.wp-block-button__link:focus-visible, .button:focus-visible, .rp-btn:focus-visible{
  outline:2px solid var(--rp-blue);
  outline-offset:3px;
}
.inside-article{
  background:var(--rp-card); border:1px solid var(--rp-border);
  border-radius:16px; padding:44px; box-shadow:var(--rp-shadow);
}

/* ============ header system v1.1 ============ */

/* slim trust bar above the header */
.rp-topbar{
  background:var(--rp-navy); color:#CBD5E1;
  font-size:.78rem; font-weight:600; letter-spacing:.02em;
  text-align:center; padding:8px 16px; line-height:1.5;
}
.rp-topbar .rp-dot{
  display:inline-block; width:8px; height:8px; border-radius:50%;
  background:var(--rp-green); margin-right:8px; vertical-align:1px;
}
.rp-topbar a{ color:#fff; text-decoration:underline; text-underline-offset:2px; }

/* sticky header with scroll shadow */
.site-header{
  background:#ffffff; border-bottom:1px solid var(--rp-border);
  position:sticky; top:0; z-index:200;
  transition:box-shadow .2s ease;
}
.site-header.rp-scrolled{ box-shadow:0 4px 18px rgba(22,41,77,.10); }
.admin-bar .site-header{ top:32px; }
@media (max-width:782px){ .admin-bar .site-header{ top:46px; } }

/* tighter branding row: logo + title + nav on one baseline */
.inside-header{
  padding-top:10px !important; padding-bottom:10px !important;
  display:flex; align-items:center;
}
/* kill the oversized 200px Customizer logo width — fixed 44px tall, crisp on retina */
.site-header .header-image{ width:auto !important; height:44px; }
.site-branding{ display:flex; align-items:center; gap:12px; }
.main-title{ font-size:1.25rem; line-height:1; margin:0; }
.main-title a{ color:var(--rp-navy) !important; font-weight:800; letter-spacing:-0.02em; }

/* nav: spacing + animated underline + active state */
.main-navigation .main-nav ul li a{
  color:var(--rp-navy); font-weight:600; font-size:.98rem;
  padding:10px 16px; position:relative; transition:color .15s ease;
}
.main-navigation .main-nav ul li a::after{
  content:""; position:absolute; left:16px; right:16px; bottom:5px; height:2px;
  background:var(--rp-blue); border-radius:2px;
  transform:scaleX(0); transform-origin:left;
  transition:transform .18s ease;
}
.main-navigation .main-nav ul li a:hover{ color:var(--rp-blue); }
.main-navigation .main-nav ul li a:hover::after,
.main-navigation .main-nav ul li[class*="current-menu"] > a::after{ transform:scaleX(1); }
.main-navigation .main-nav ul li[class*="current-menu"] > a{ color:var(--rp-blue); }

/* header CTA: a quiet typographic link, not a pill. The hero already carries
   the loud CTA; the header's job is wayfinding. Separated by a hairline,
   styled as one of the family — blue, bold, same underline animation. */
.main-navigation .main-nav ul li.rp-nav-cta a{
  background:none !important; box-shadow:none !important; border-radius:0;
  color:var(--rp-blue) !important; font-weight:700; font-size:.95rem;
  padding:10px 2px 10px 18px; margin-left:10px;
  border-left:1px solid var(--rp-border);
  transform:none !important;
}
.main-navigation .main-nav ul li.rp-nav-cta a::after{ left:18px; right:2px; }
.main-navigation .main-nav ul li.rp-nav-cta a:hover{ color:var(--rp-blue-dark) !important; }

/* anchor offset so the sticky header never covers jump targets */
section[id], div[id]{ scroll-margin-top:96px; }

/* ---- header: mobile ---- */
@media (max-width:768px){
  .site-header .header-image{ height:36px; }
  .main-title{ font-size:1.08rem; }
  .inside-header{ padding-top:8px !important; padding-bottom:8px !important; }
  .rp-topbar{ font-size:.72rem; padding:7px 12px; }
  /* menu toggle as a proper button */
  .menu-toggle{
    border:1px solid var(--rp-border) !important; border-radius:10px !important;
    padding:10px 14px !important; color:var(--rp-navy) !important;
    font-weight:700 !important; background:#fff !important; font-size:.9rem;
  }
  .menu-toggle:hover, .menu-toggle:focus{ background:var(--rp-bg) !important; }
  /* stacked dropdown links — no underline animation, generous tap targets */
  .main-navigation .main-nav ul li a{ padding:14px 20px; }
  .main-navigation .main-nav ul li a::after{ display:none; }
  /* header CTA becomes a separated row at the bottom of the dropdown */
  .main-navigation .main-nav ul li.rp-nav-cta a{
    margin:0; display:block; text-align:left;
    padding:14px 20px; border-left:none;
    border-top:1px solid var(--rp-border);
  }
  .main-navigation .main-nav ul li.rp-nav-cta a::after{ display:none; }
}

/* ---- buttons ---- */
.wp-block-button__link, .button,
button:not(.menu-toggle):not(.search-submit),
input[type="submit"], input[type="button"],
.wpforms-container button[type="submit"],
.rp-btn{
  background-color:var(--rp-blue) !important;
  border:none !important; border-radius:10px !important;
  color:#ffffff !important; font-weight:700 !important;
  padding:14px 30px !important; display:inline-block;
  box-shadow:0 4px 14px rgba(37,99,235,.28);
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease;
  text-decoration:none !important;
}
.wp-block-button__link:hover, .button:hover,
button:not(.menu-toggle):not(.search-submit):hover,
input[type="submit"]:hover, input[type="button"]:hover,
.wpforms-container button[type="submit"]:hover,
.rp-btn:hover{
  background-color:var(--rp-blue-dark) !important;
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(37,99,235,.35);
}
.rp-btn-ghost{
  background:transparent !important; color:#ffffff !important;
  border:2px solid rgba(255,255,255,.5) !important; box-shadow:none !important;
}
.rp-btn-ghost:hover{ border-color:#ffffff !important; background:rgba(255,255,255,.08) !important; }
.rp-btn-outline{
  background:transparent !important; color:var(--rp-blue) !important;
  border:2px solid var(--rp-blue) !important; box-shadow:none !important;
}
.rp-btn-outline:hover{ background:var(--rp-blue) !important; color:#fff !important; }

/* ---- review components (shortcodes) ---- */
.rp-disclosure{
  background:var(--rp-amber-bg); border-left:4px solid var(--rp-amber);
  border-radius:0 var(--rp-radius) var(--rp-radius) 0;
  padding:16px 20px; margin:1.8em 0; font-size:.95em; color:#92400E;
}
.rp-verdict{
  background:#fff; border:1px solid var(--rp-border);
  border-radius:var(--rp-radius); overflow:hidden; margin:2em 0;
  box-shadow:var(--rp-shadow);
}
.rp-verdict-head{ background:var(--rp-green); color:#fff; font-weight:800; padding:12px 20px; font-size:1.05rem; }
.rp-verdict-body{ padding:20px 22px; }
.rp-verdict-cols{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; margin-top:16px; }
.rp-verdict-cols ul{ margin:8px 0 0 1.1em; }
.rp-pros strong{ color:var(--rp-green); }
.rp-cons strong{ color:var(--rp-danger); }

/* ---- scorecard (honest 5-criterion checklist, no numeric score) ---- */
.rp-scorecard-rows{ list-style:none; margin:0 0 6px; padding:0; display:grid; gap:12px; }
.rp-scorecard-rows li{
  display:flex; gap:12px; align-items:flex-start;
  padding:12px 14px; border:1px solid var(--rp-border);
  border-radius:10px; background:var(--rp-bg);
}
.rp-score-icon{
  flex:none; width:26px; height:26px; border-radius:999px; color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  font-weight:800; font-size:.85rem;
}
.rp-score-pass .rp-score-icon{ background:var(--rp-green); }
.rp-score-warn .rp-score-icon{ background:var(--rp-amber); }
.rp-score-fail .rp-score-icon{ background:var(--rp-danger); }
.rp-scorecard-rows strong{ display:block; color:var(--rp-navy); }
.rp-score-note{ display:block; color:var(--rp-muted); font-size:.92rem; margin-top:2px; }
.rp-scorecard-foot{
  margin:16px 0 0; font-weight:700; color:var(--rp-navy);
  border-top:1px solid var(--rp-border); padding-top:14px;
}
.rp-warning-box{
  background:var(--rp-danger-bg); border-left:4px solid var(--rp-danger);
  border-radius:0 var(--rp-radius) var(--rp-radius) 0;
  padding:16px 20px; margin:1.8em 0; font-size:.95em; color:#991B1B;
}
blockquote{
  border-left:4px solid var(--rp-blue); background:#EFF6FF;
  border-radius:0 var(--rp-radius) var(--rp-radius) 0;
  padding:16px 20px; margin:1.8em 0; font-style:normal;
}

/* ---- forms ---- */
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container textarea{
  border:1px solid var(--rp-border) !important;
  border-radius:8px !important; padding:12px 14px !important;
}

/* ============ homepage ============ */
/* Vertical rhythm system: 72px section bands on desktop, 48px on mobile.
   Title → 8px → sub → 32px → content. Card gaps unified at 24px. */
.rp-home .inside-article{ background:transparent; border:none; box-shadow:none; padding:0; }
.rp-section{ padding:72px 0; }
/* final CTA band sits directly above the navy footer — tighter bottom padding
   so the page doesn't exhale twice (was 72px + 56px footer top = 128px of air) */
.rp-final-section{ padding-bottom:48px; }
.rp-wrap{ max-width:1100px; margin:0 auto; padding:0 24px; }
.rp-eyebrow{
  display:inline-block; font-size:.8rem; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; margin-bottom:16px;
}

/* hero */
.rp-hero{
  background:linear-gradient(135deg,#16294D 0%,#1E3A6E 60%,#2563EB 130%);
  color:#fff; padding:88px 0 72px; border-radius:0;
}
.rp-hero .rp-eyebrow{ color:#BFDBFE; }
.rp-hero h1{ color:#fff; font-size:clamp(2rem,5vw,3rem); line-height:1.15; margin:0 0 18px; max-width:16em; }
.rp-hero p.rp-lede{ color:#DBEAFE; font-size:1.15rem; line-height:1.65; max-width:34em; margin:0 0 32px; }
.rp-hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:44px; }
.rp-stats{ display:flex; gap:36px; flex-wrap:wrap; }
.rp-stat{ display:flex; flex-direction:column; }
.rp-stat b{ font-size:1.5rem; font-weight:800; color:#fff; }
.rp-stat span{ font-size:.85rem; color:#BFDBFE; }

/* trust strip */
.rp-trust{ background:#fff; border-bottom:1px solid var(--rp-border); padding:26px 0; }
.rp-trust .rp-wrap{ display:flex; gap:32px; flex-wrap:wrap; justify-content:center; }
.rp-trust-item{ display:flex; align-items:center; gap:10px; font-weight:700; color:var(--rp-navy); }
.rp-check{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; border-radius:999px; flex:none;
  background:var(--rp-green); color:#fff; font-weight:800; font-size:.9rem;
}

/* featured + cards */
.rp-section-title{ font-size:1.75rem; margin:0 0 8px; }
.rp-section-sub{ color:var(--rp-muted); margin:0 0 32px; max-width:44em; }
.rp-featured{
  background:#fff; border:1px solid var(--rp-border); border-radius:16px;
  box-shadow:var(--rp-shadow); padding:36px; display:grid; gap:18px;
}
.rp-badge{
  display:inline-block; font-size:.75rem; font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; padding:6px 14px; border-radius:999px;
}
.rp-badge-green{ background:#DCFCE7; color:#166534; }
.rp-badge-blue{ background:#DBEAFE; color:#1D4ED8; }
.rp-featured h2{ font-size:1.6rem; margin:0; }
.rp-featured p{ color:var(--rp-muted); margin:0; max-width:52em; }
.rp-featured .rp-card-ctas{ display:flex; gap:12px; flex-wrap:wrap; }
.rp-badges{ display:flex; gap:10px; flex-wrap:wrap; }

.rp-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.rp-card{
  background:#fff; border:1px solid var(--rp-border); border-radius:var(--rp-radius);
  box-shadow:var(--rp-shadow); padding:28px; display:flex; flex-direction:column; gap:12px;
  transition:transform .15s ease, box-shadow .15s ease;
  min-width:0; /* never force the grid track wider than the viewport */
}
.rp-card:hover{ transform:translateY(-2px); box-shadow:0 8px 24px rgba(22,41,77,.1); }
.rp-card h3{ font-size:1.2rem; margin:0; }
.rp-card p{ color:var(--rp-muted); font-size:.95rem; margin:0; flex:1; }
.rp-card .rp-checked{ font-size:.8rem; color:var(--rp-green); font-weight:700; }
.rp-card > a.rp-card-link{ font-weight:700; color:var(--rp-blue); text-decoration:none; }
.rp-card > a.rp-card-link:hover{ color:var(--rp-blue-dark); }

/* how we vet */
.rp-vet{ background:#fff; border-top:1px solid var(--rp-border); border-bottom:1px solid var(--rp-border); }
/* minmax(0,1fr): long words (e.g. "Data-harvesting risk") can never force a
   track wider than the viewport — the grid degrades gracefully everywhere */
.rp-vet-grid{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; }
.rp-vet-item{
  border:1px solid var(--rp-border); border-radius:var(--rp-radius);
  padding:24px 20px; background:var(--rp-bg); min-width:0;
}
.rp-vet-item .rp-check{ margin-bottom:12px; }
.rp-vet-item h3{ font-size:1rem; margin:0 0 6px; overflow-wrap:break-word; }
.rp-vet-item p{ font-size:.88rem; color:var(--rp-muted); margin:0; }

/* red flags */
.rp-flags{ background:var(--rp-amber-bg); }
.rp-flags h2{ margin-top:0; }
.rp-flags ol{ margin:0; padding:0; list-style:none; display:grid; gap:14px; counter-reset:rpflag; }
.rp-flags li{
  counter-increment:rpflag; background:#fff; border:1px solid #FDE68A;
  border-radius:var(--rp-radius); padding:16px 20px 16px 64px; position:relative;
  font-weight:600; color:var(--rp-text);
}
.rp-flags li::before{
  content:counter(rpflag); position:absolute; left:20px; top:50%; transform:translateY(-50%);
  width:30px; height:30px; border-radius:999px; background:var(--rp-amber); color:#fff;
  font-weight:800; display:flex; align-items:center; justify-content:center; font-size:.9rem;
}
.rp-flags .rp-flags-foot{ margin-top:20px; color:#92400E; font-weight:600; }

/* final CTA */
.rp-final{
  background:linear-gradient(135deg,#16294D 0%,#1E3A6E 70%,#2563EB 140%);
  color:#fff; text-align:center; border-radius:20px; padding:64px 32px;
}
.rp-final h2{ color:#fff; font-size:2rem; margin:0 0 12px; }
.rp-final p{ color:#DBEAFE; margin:0 0 28px; }

/* ---- custom footer (navy) ---- */
.site-footer{ background:var(--rp-navy); }
.rp-footer-inner{
  max-width:1100px; margin:0 auto; padding:56px 24px 32px;
  display:grid; grid-template-columns:1.4fr 1fr 1.2fr; gap:40px;
}
.rp-footer-brand img{ width:44px; height:44px; margin-bottom:14px; }
.rp-footer-brand p{ color:#CBD5E1; font-size:.92rem; line-height:1.65; margin:0; max-width:26em; }
.rp-footer-col strong{ display:block; color:#fff; margin-bottom:14px; font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; }
.rp-footer-col ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.rp-footer-col a{ color:#CBD5E1; text-decoration:none; font-size:.95rem; }
.rp-footer-col a:hover{ color:#fff; text-decoration:underline; }
.rp-footer-col p{ color:#CBD5E1; font-size:.92rem; line-height:1.65; margin:0 0 14px; }
.rp-footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  max-width:1100px; margin:0 auto; padding:20px 24px 28px;
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  color:#94A3B8; font-size:.82rem;
}
.rp-footer-bottom a{ color:#CBD5E1; }

/* ---- footer default bits ---- */
.site-info{ background-color:transparent; }

/* ---- mobile ---- */
@media (max-width:900px){
  .rp-grid{ grid-template-columns:1fr; }
  .rp-vet-grid{ grid-template-columns:1fr 1fr; }
  .rp-footer-inner{ grid-template-columns:1fr; gap:32px; }
  .rp-verdict-cols{ grid-template-columns:1fr; }
}
@media (max-width:768px){
  .inside-article{ padding:24px 20px; border-radius:12px; }
  .rp-section{ padding:48px 0; }
  .rp-final-section{ padding-bottom:40px; }
  .rp-hero{ padding:64px 0 52px; }
  .rp-hero-ctas .rp-btn{ width:100%; text-align:center; }
  .rp-stats{ gap:20px; }
  .rp-featured{ padding:26px 22px; }
  /* final CTA card hugs its content on small screens (was 64px/32px) */
  .rp-final{ padding:44px 24px; }
  .rp-final h2{ font-size:1.7rem; }
}
@media (max-width:520px){
  .rp-vet-grid{ grid-template-columns:1fr; }
}
