/*
Theme Name:  Pickavault Child
Theme URI:   https://pickavault.com
Description: Pickavault child theme for Hello Elementor parent theme. Provides all brand styles, layout, typography, and SEO-friendly structure for Pickavault — a product discovery and buying guide blog.
Author:      Pickavault
Author URI:  https://pickavault.com
Template:    hello-elementor
Version:     1.0.0
License:     GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pickavault-child
Tags:        blog, e-commerce, affiliate, seo, elementor
*/

/* ============================================================
   PICKAVAULT THEME TOKENS
   Edit this block to restyle the entire site globally.
   All components reference these variables.
   ============================================================ */
:root {
  /* ── Brand Colors ───────────────────────────────────────── */
  --pv-brand:        #1A3C34;   /* primary — nav, buttons, links   */
  --pv-brand-mid:    #2E6653;   /* hover / gradient mid            */
  --pv-brand-light:  #EBF3F0;   /* tints, pills, active states     */
  --pv-accent:       #C8873A;   /* amber — badges, stars, CTA      */
  --pv-accent-light: #FDF3E7;   /* amber tint backgrounds          */

  /* ── Text ───────────────────────────────────────────────── */
  --pv-text-primary:   #141412;
  --pv-text-secondary: #4A4A45;
  --pv-text-muted:     #8A8A82;

  /* ── Surfaces ───────────────────────────────────────────── */
  --pv-bg:      #FAFAF8;
  --pv-surface: #FFFFFF;

  /* ── Borders ────────────────────────────────────────────── */
  --pv-border:        #E4E4DC;
  --pv-border-strong: #C8C8BC;

  /* ── Radius ─────────────────────────────────────────────── */
  --pv-radius-sm: 6px;
  --pv-radius-md: 10px;
  --pv-radius-lg: 16px;
  --pv-radius-xl: 24px;

  /* ── Typography ─────────────────────────────────────────── */
  --pv-font-display: 'Lora', Georgia, serif;
  --pv-font-body:    'DM Sans', system-ui, -apple-system, sans-serif;

  /* ── Shadows ────────────────────────────────────────────── */
  --pv-shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --pv-shadow-md: 0 4px 12px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.04);
  --pv-shadow-lg: 0 8px 24px rgba(0,0,0,0.10), 0 4px 8px rgba(0,0,0,0.06);

  /* ── Layout ─────────────────────────────────────────────── */
  --pv-container: 1200px;
  --pv-sidebar-w: 320px;
  --pv-gap:       48px;
}

/* ============================================================
   GLOBAL RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--pv-font-body);
  background:  var(--pv-bg);
  color:       var(--pv-text-primary);
  font-size:   15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--pv-brand); }
a:hover { color: var(--pv-brand-mid); }

/* ============================================================
   HELLO ELEMENTOR OVERRIDES
   ============================================================ */
.site { background: var(--pv-bg); }
.site-header { background: var(--pv-surface) !important; border-bottom: 1px solid var(--pv-border) !important; }
.site-main { padding: 0; }

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--pv-font-display);
  color:       var(--pv-text-primary);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.3px;
}

h1 { font-size: clamp(28px, 4vw, 42px); }
h2 { font-size: clamp(22px, 3vw, 30px); }
h3 { font-size: clamp(18px, 2.5vw, 22px); }
h4 { font-size: 18px; }
h5 { font-size: 16px; }
h6 { font-size: 14px; }

p { margin-bottom: 1.1em; color: var(--pv-text-secondary); }

/* ============================================================
   LAYOUT UTILITIES
   ============================================================ */
.pv-container {
  max-width: var(--pv-container);
  margin:    0 auto;
  padding:   0 24px;
}

.pv-content-sidebar {
  display: grid;
  grid-template-columns: 1fr var(--pv-sidebar-w);
  gap:     var(--pv-gap);
  align-items: start;
  padding: 40px 0 80px;
}

@media (max-width: 960px) {
  .pv-content-sidebar { grid-template-columns: 1fr; }
}

/* ============================================================
   NAVIGATION
   ============================================================ */
.pv-nav {
  background: var(--pv-surface);
  border-bottom: 1px solid var(--pv-border);
  position: sticky;
  top: 0;
  z-index: 200;
}

.pv-nav-inner {
  display:     flex;
  align-items: center;
  height:      60px;
  gap:         8px;
}

/* Logo */
.pv-logo {
  display:     flex;
  align-items: center;
  gap:         10px;
  text-decoration: none;
  margin-right: auto;
  flex-shrink: 0;
}

.pv-logo-mark {
  width:         34px;
  height:        34px;
  background:    var(--pv-brand);
  border-radius: 8px;
  display:       flex;
  align-items:   center;
  justify-content: center;
  flex-shrink:   0;
}

.pv-logo-mark svg {
  width:  18px;
  height: 18px;
  fill:   none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pv-logo-text {
  font-family:     var(--pv-font-display);
  font-size:       19px;
  font-weight:     600;
  color:           var(--pv-brand);
  letter-spacing:  -0.3px;
  white-space:     nowrap;
}

.pv-logo-text span { color: var(--pv-accent); }

/* Primary nav menu */
.pv-nav .pv-primary-menu {
  display:     flex;
  align-items: center;
  gap:         2px;
  list-style:  none;
  margin:      0;
  padding:     0;
}

.pv-primary-menu > li > a {
  display:       block;
  font-size:     14px;
  font-weight:   400;
  color:         var(--pv-text-secondary);
  text-decoration: none;
  padding:       6px 12px;
  border-radius: var(--pv-radius-sm);
  transition:    all 0.15s;
  white-space:   nowrap;
}

.pv-primary-menu > li > a:hover,
.pv-primary-menu > li.current-menu-item > a,
.pv-primary-menu > li.current-menu-ancestor > a {
  color:      var(--pv-brand);
  background: var(--pv-brand-light);
  font-weight: 500;
}

/* Nav search toggle */
.pv-nav-search-toggle {
  display:       flex;
  align-items:   center;
  gap:           8px;
  background:    var(--pv-bg);
  border:        1px solid var(--pv-border);
  border-radius: 20px;
  padding:       0 14px;
  height:        36px;
  cursor:        pointer;
  transition:    all 0.15s;
  margin-left:   12px;
  flex-shrink:   0;
  color:         var(--pv-text-muted);
  font-size:     13px;
  font-family:   var(--pv-font-body);
}

.pv-nav-search-toggle:hover { border-color: var(--pv-border-strong); }

.pv-nav-search-toggle svg {
  width:        15px;
  height:       15px;
  stroke:       var(--pv-text-muted);
  fill:         none;
  stroke-width: 2;
  stroke-linecap: round;
  flex-shrink:  0;
}

/* Search overlay */
.pv-search-overlay {
  display:    none;
  position:   fixed;
  inset:      0;
  background: rgba(20,20,18,0.7);
  z-index:    500;
  align-items: flex-start;
  justify-content: center;
  padding-top: 80px;
}

.pv-search-overlay.is-active { display: flex; }

.pv-search-box {
  background:    var(--pv-surface);
  border-radius: var(--pv-radius-lg);
  padding:       8px 8px 8px 20px;
  display:       flex;
  align-items:   center;
  gap:           12px;
  width:         min(560px, 90vw);
  box-shadow:    var(--pv-shadow-lg);
}

.pv-search-box input {
  flex:          1;
  border:        none;
  outline:       none;
  font-family:   var(--pv-font-body);
  font-size:     16px;
  color:         var(--pv-text-primary);
  background:    transparent;
}

.pv-search-box input::placeholder { color: var(--pv-text-muted); }

.pv-search-box button {
  background:    var(--pv-brand);
  color:         #fff;
  border:        none;
  border-radius: var(--pv-radius-lg);
  padding:       10px 22px;
  font-family:   var(--pv-font-body);
  font-size:     14px;
  font-weight:   500;
  cursor:        pointer;
  transition:    background 0.15s;
  white-space:   nowrap;
}

.pv-search-box button:hover { background: var(--pv-brand-mid); }

/* Mobile menu toggle */
.pv-mobile-toggle {
  display:    none;
  background: none;
  border:     none;
  cursor:     pointer;
  padding:    8px;
  color:      var(--pv-text-primary);
  margin-left: auto;
}

.pv-mobile-toggle svg {
  width:  22px;
  height: 22px;
  fill:   none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

@media (max-width: 860px) {
  .pv-nav .pv-primary-menu { display: none; }
  .pv-mobile-toggle { display: flex; }

  .pv-nav .pv-primary-menu.is-open {
    display:    flex;
    flex-direction: column;
    position:   absolute;
    top:        60px;
    left:       0;
    right:      0;
    background: var(--pv-surface);
    border-bottom: 1px solid var(--pv-border);
    padding:    12px 16px;
    gap:        2px;
    z-index:    199;
    box-shadow: var(--pv-shadow-md);
  }

  .pv-primary-menu > li > a { padding: 10px 12px; }
  .pv-nav-search-toggle span { display: none; }
}

/* ============================================================
   BREADCRUMB
   ============================================================ */
.pv-breadcrumb-bar {
  background:    var(--pv-surface);
  border-bottom: 1px solid var(--pv-border);
}

.pv-breadcrumb {
  display:     flex;
  align-items: center;
  flex-wrap:   wrap;
  gap:         6px;
  font-size:   12px;
  color:       var(--pv-text-muted);
  padding:     10px 0;
}

.pv-breadcrumb a {
  color:           var(--pv-text-muted);
  text-decoration: none;
  transition:      color 0.15s;
}

.pv-breadcrumb a:hover { color: var(--pv-brand); text-decoration: underline; }

.pv-breadcrumb-sep { opacity: 0.5; }

/* ============================================================
   CATEGORY STRIP
   ============================================================ */
.pv-cat-strip {
  background:    var(--pv-surface);
  border-bottom: 1px solid var(--pv-border);
  overflow:      hidden;
}

.pv-cat-strip-inner {
  display:     flex;
  align-items: center;
  gap:         6px;
  height:      52px;
  overflow-x:  auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.pv-cat-strip-inner::-webkit-scrollbar { display: none; }

.pv-cat-pill {
  display:         flex;
  align-items:     center;
  gap:             6px;
  white-space:     nowrap;
  padding:         6px 14px;
  border-radius:   20px;
  font-size:       13px;
  font-weight:     400;
  text-decoration: none;
  color:           var(--pv-text-secondary);
  border:          1px solid transparent;
  transition:      all 0.15s;
  flex-shrink:     0;
}

.pv-cat-pill:hover,
.pv-cat-pill.current-cat {
  color:        var(--pv-brand);
  background:   var(--pv-brand-light);
  border-color: var(--pv-brand-light);
  font-weight:  500;
}

/* ============================================================
   HERO SECTION
   ============================================================ */
.pv-hero {
  background: linear-gradient(160deg, var(--pv-brand) 0%, var(--pv-brand-mid) 100%);
  padding:    72px 24px 80px;
  text-align: center;
  position:   relative;
  overflow:   hidden;
}

.pv-hero::before {
  content:  '';
  position: absolute;
  inset:    0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}

.pv-hero-inner {
  max-width: 720px;
  margin:    0 auto;
  position:  relative;
}

.pv-hero-eyebrow {
  display:         inline-flex;
  align-items:     center;
  gap:             6px;
  background:      rgba(255,255,255,0.12);
  border:          1px solid rgba(255,255,255,0.2);
  border-radius:   20px;
  padding:         5px 14px;
  font-size:       12px;
  color:           rgba(255,255,255,0.85);
  letter-spacing:  0.5px;
  text-transform:  uppercase;
  font-weight:     500;
  margin-bottom:   24px;
}

.pv-hero-eyebrow::before {
  content:       '';
  width:         6px;
  height:        6px;
  background:    var(--pv-accent);
  border-radius: 50%;
  flex-shrink:   0;
}

.pv-hero h1 {
  font-size:      clamp(32px, 5vw, 52px);
  color:          #fff;
  line-height:    1.15;
  letter-spacing: -0.5px;
  margin-bottom:  18px;
}

.pv-hero h1 em {
  font-style: italic;
  color:      rgba(255,255,255,0.72);
}

.pv-hero-desc {
  font-size:     17px;
  color:         rgba(255,255,255,0.72);
  max-width:     520px;
  margin:        0 auto 32px;
  line-height:   1.65;
}

.pv-hero-search {
  background:    #fff;
  border-radius: var(--pv-radius-xl);
  padding:       6px 6px 6px 20px;
  display:       flex;
  align-items:   center;
  gap:           12px;
  max-width:     480px;
  margin:        0 auto;
  box-shadow:    var(--pv-shadow-md);
}

.pv-hero-search input {
  flex:        1;
  border:      none;
  outline:     none;
  font-family: var(--pv-font-body);
  font-size:   15px;
  color:       var(--pv-text-primary);
  background:  transparent;
}

.pv-hero-search input::placeholder { color: var(--pv-text-muted); }

.pv-hero-search button {
  background:    var(--pv-brand);
  color:         #fff;
  border:        none;
  border-radius: 18px;
  padding:       10px 22px;
  font-family:   var(--pv-font-body);
  font-size:     14px;
  font-weight:   500;
  cursor:        pointer;
  white-space:   nowrap;
  transition:    background 0.15s;
}

.pv-hero-search button:hover { background: var(--pv-brand-mid); }

.pv-hero-trending {
  display:         flex;
  align-items:     center;
  justify-content: center;
  flex-wrap:       wrap;
  gap:             8px;
  margin-top:      20px;
}

.pv-hero-trending span {
  font-size: 12px;
  color:     rgba(255,255,255,0.55);
}

.pv-hero-trending a {
  font-size:       12px;
  color:           rgba(255,255,255,0.7);
  text-decoration: none;
  background:      rgba(255,255,255,0.1);
  border:          1px solid rgba(255,255,255,0.15);
  border-radius:   20px;
  padding:         4px 12px;
  transition:      all 0.15s;
}

.pv-hero-trending a:hover {
  background: rgba(255,255,255,0.18);
  color:      #fff;
}

/* ============================================================
   SECTION HEADERS
   ============================================================ */
.pv-section-header {
  display:         flex;
  align-items:     baseline;
  justify-content: space-between;
  margin-bottom:   24px;
}

.pv-section-title {
  font-family:    var(--pv-font-display);
  font-size:      22px;
  font-weight:    600;
  color:          var(--pv-text-primary);
  letter-spacing: -0.3px;
}

.pv-section-link {
  font-size:       13px;
  color:           var(--pv-brand);
  text-decoration: none;
  font-weight:     500;
}

.pv-section-link:hover { text-decoration: underline; }

/* ============================================================
   FEATURED CARD
   ============================================================ */
.pv-featured-card {
  background:      var(--pv-surface);
  border:          1px solid var(--pv-border);
  border-radius:   var(--pv-radius-lg);
  overflow:        hidden;
  margin-bottom:   32px;
  text-decoration: none;
  display:         block;
  transition:      box-shadow 0.2s;
  box-shadow:      var(--pv-shadow-sm);
}

.pv-featured-card:hover { box-shadow: var(--pv-shadow-md); }

.pv-featured-img {
  position:   relative;
  width:      100%;
  height:     260px;
  overflow:   hidden;
}

.pv-featured-img img {
  width:      100%;
  height:     100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.pv-featured-card:hover .pv-featured-img img { transform: scale(1.02); }

.pv-featured-img-overlay {
  position:   absolute;
  inset:      0;
  background: linear-gradient(transparent 30%, rgba(15,40,30,0.75));
  display:    flex;
  align-items: flex-end;
  padding:    20px 24px;
}

.pv-featured-badge {
  display:         inline-flex;
  align-items:     center;
  gap:             5px;
  background:      var(--pv-accent);
  color:           #fff;
  font-size:       11px;
  font-weight:     600;
  text-transform:  uppercase;
  letter-spacing:  0.6px;
  padding:         4px 10px;
  border-radius:   4px;
  margin-bottom:   8px;
}

.pv-featured-overlay-title {
  font-family: var(--pv-font-display);
  font-size:   20px;
  font-weight: 600;
  color:       #fff;
  line-height: 1.25;
}

.pv-featured-body { padding: 20px 24px; }

.pv-article-meta {
  display:     flex;
  align-items: center;
  flex-wrap:   wrap;
  gap:         10px;
  font-size:   12px;
  color:       var(--pv-text-muted);
  margin-bottom: 10px;
}

.pv-cat-tag {
  background:     var(--pv-brand-light);
  color:          var(--pv-brand);
  font-weight:    500;
  padding:        3px 9px;
  border-radius:  4px;
  font-size:      11px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  text-decoration: none;
}

.pv-cat-tag:hover { background: var(--pv-brand); color: #fff; }

.pv-featured-desc {
  font-size:     15px;
  color:         var(--pv-text-secondary);
  line-height:   1.65;
  margin-bottom: 16px;
}

.pv-read-more {
  display:         inline-flex;
  align-items:     center;
  gap:             6px;
  font-size:       13px;
  font-weight:     500;
  color:           var(--pv-brand);
  text-decoration: none;
}

.pv-read-more svg {
  width:      14px;
  height:     14px;
  fill:       none;
  stroke:     currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.15s;
}

.pv-read-more:hover svg { transform: translateX(3px); }

/* ============================================================
   ARTICLE GRID (2 col)
   ============================================================ */
.pv-article-grid {
  display:               grid;
  grid-template-columns: repeat(2, 1fr);
  gap:                   20px;
  margin-bottom:         32px;
}

@media (max-width: 640px) {
  .pv-article-grid { grid-template-columns: 1fr; }
}

.pv-article-card {
  background:      var(--pv-surface);
  border:          1px solid var(--pv-border);
  border-radius:   var(--pv-radius-md);
  overflow:        hidden;
  text-decoration: none;
  display:         flex;
  flex-direction:  column;
  transition:      all 0.2s;
  box-shadow:      var(--pv-shadow-sm);
}

.pv-article-card:hover {
  box-shadow: var(--pv-shadow-md);
  transform:  translateY(-2px);
}

.pv-article-card-thumb {
  height:     160px;
  overflow:   hidden;
  background: linear-gradient(135deg, var(--pv-brand-light), #B8D4CC);
  position:   relative;
}

.pv-article-card-thumb img {
  width:      100%;
  height:     100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.pv-article-card:hover .pv-article-card-thumb img { transform: scale(1.03); }

.pv-article-card-body {
  padding: 16px;
  flex:    1;
  display: flex;
  flex-direction: column;
}

.pv-article-card-cat {
  font-size:       10px;
  font-weight:     600;
  text-transform:  uppercase;
  letter-spacing:  0.5px;
  color:           var(--pv-brand);
  margin-bottom:   6px;
  text-decoration: none;
}

.pv-article-card-title {
  font-family:   var(--pv-font-display);
  font-size:     15px;
  font-weight:   600;
  color:         var(--pv-text-primary);
  line-height:   1.35;
  margin-bottom: 10px;
  flex:          1;
}

.pv-article-card-meta {
  display:     flex;
  align-items: center;
  gap:         8px;
  font-size:   11px;
  color:       var(--pv-text-muted);
  margin-top:  auto;
}

.pv-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--pv-border-strong); }

/* ============================================================
   LIST ARTICLES
   ============================================================ */
.pv-list-articles {
  display:        flex;
  flex-direction: column;
  gap:            16px;
  margin-bottom:  32px;
}

.pv-list-article {
  display:         flex;
  align-items:     flex-start;
  gap:             16px;
  background:      var(--pv-surface);
  border:          1px solid var(--pv-border);
  border-radius:   var(--pv-radius-md);
  padding:         16px;
  text-decoration: none;
  transition:      all 0.2s;
  box-shadow:      var(--pv-shadow-sm);
}

.pv-list-article:hover {
  box-shadow:   var(--pv-shadow-md);
  border-color: var(--pv-border-strong);
}

.pv-list-article-thumb {
  width:         80px;
  height:        80px;
  border-radius: var(--pv-radius-sm);
  overflow:      hidden;
  flex-shrink:   0;
  background:    var(--pv-brand-light);
}

.pv-list-article-thumb img {
  width:      100%;
  height:     100%;
  object-fit: cover;
}

.pv-list-article-body { flex: 1; min-width: 0; }

.pv-list-article-cat {
  font-size:       10px;
  font-weight:     600;
  text-transform:  uppercase;
  letter-spacing:  0.5px;
  color:           var(--pv-brand);
  margin-bottom:   4px;
  text-decoration: none;
  display:         block;
}

.pv-list-article-title {
  font-family:    var(--pv-font-display);
  font-size:      15px;
  font-weight:    600;
  color:          var(--pv-text-primary);
  line-height:    1.35;
  margin-bottom:  4px;
  display:        -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:       hidden;
}

.pv-list-article:hover .pv-list-article-title { color: var(--pv-brand); }

.pv-list-article-meta { font-size: 11px; color: var(--pv-text-muted); }

/* ============================================================
   PAGINATION
   ============================================================ */
.pv-pagination {
  display:     flex;
  align-items: center;
  gap:         6px;
  flex-wrap:   wrap;
}

.pv-pagination .page-numbers {
  width:           36px;
  height:          36px;
  border-radius:   var(--pv-radius-sm);
  border:          1px solid var(--pv-border);
  background:      var(--pv-surface);
  font-size:       13px;
  color:           var(--pv-text-secondary);
  display:         flex;
  align-items:     center;
  justify-content: center;
  text-decoration: none;
  transition:      all 0.15s;
  font-family:     var(--pv-font-body);
}

.pv-pagination .page-numbers:hover { border-color: var(--pv-border-strong); color: var(--pv-text-primary); }

.pv-pagination .page-numbers.current {
  background:   var(--pv-brand);
  border-color: var(--pv-brand);
  color:        #fff;
}

.pv-pagination .page-numbers.dots {
  border:     none;
  background: none;
  color:      var(--pv-text-muted);
  width:      auto;
}

/* ============================================================
   SIDEBAR WIDGETS
   ============================================================ */
.pv-sidebar {
  display:        flex;
  flex-direction: column;
  gap:            28px;
}

.pv-widget {
  background:    var(--pv-surface);
  border:        1px solid var(--pv-border);
  border-radius: var(--pv-radius-md);
  padding:       20px;
  box-shadow:    var(--pv-shadow-sm);
}

.pv-widget-title {
  font-family:   var(--pv-font-display);
  font-size:     16px;
  font-weight:   600;
  color:         var(--pv-text-primary);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--pv-border);
}

/* Category list widget */
.pv-widget-cat-list { display: flex; flex-direction: column; gap: 2px; }

.pv-widget-cat-item {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         8px 10px;
  border-radius:   var(--pv-radius-sm);
  text-decoration: none;
  transition:      background 0.15s;
}

.pv-widget-cat-item:hover { background: var(--pv-bg); }

.pv-widget-cat-left { display: flex; align-items: center; gap: 10px; }

.pv-widget-cat-icon {
  width:         28px;
  height:        28px;
  border-radius: 6px;
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-size:     14px;
  background:    var(--pv-brand-light);
}

.pv-widget-cat-name { font-size: 13px; color: var(--pv-text-secondary); }

.pv-widget-cat-count {
  font-size:     11px;
  color:         var(--pv-text-muted);
  background:    var(--pv-bg);
  border:        1px solid var(--pv-border);
  border-radius: 20px;
  padding:       2px 8px;
}

/* Popular posts widget */
.pv-popular-list { display: flex; flex-direction: column; gap: 14px; }

.pv-popular-item {
  display:         flex;
  align-items:     flex-start;
  gap:             12px;
  text-decoration: none;
}

.pv-popular-num {
  font-family: var(--pv-font-display);
  font-size:   22px;
  font-weight: 600;
  color:       var(--pv-border-strong);
  line-height: 1;
  flex-shrink: 0;
  width:       24px;
}

.pv-popular-title {
  font-size:   13px;
  color:       var(--pv-text-secondary);
  line-height: 1.4;
  transition:  color 0.15s;
}

.pv-popular-item:hover .pv-popular-title { color: var(--pv-brand); }

/* Newsletter widget */
.pv-widget-newsletter {
  background: linear-gradient(135deg, var(--pv-brand) 0%, var(--pv-brand-mid) 100%);
  border:     none;
}

.pv-widget-newsletter .pv-widget-title {
  color:        #fff;
  border-color: rgba(255,255,255,0.15);
}

.pv-newsletter-desc {
  font-size:     13px;
  color:         rgba(255,255,255,0.72);
  line-height:   1.55;
  margin-bottom: 14px;
}

.pv-newsletter-form .pv-newsletter-email {
  width:         100%;
  border:        1px solid rgba(255,255,255,0.25);
  background:    rgba(255,255,255,0.12);
  border-radius: var(--pv-radius-sm);
  padding:       9px 14px;
  font-family:   var(--pv-font-body);
  font-size:     13px;
  color:         #fff;
  outline:       none;
  margin-bottom: 8px;
  transition:    border-color 0.15s;
}

.pv-newsletter-form .pv-newsletter-email::placeholder { color: rgba(255,255,255,0.45); }
.pv-newsletter-form .pv-newsletter-email:focus { border-color: rgba(255,255,255,0.5); }

.pv-newsletter-form .pv-newsletter-submit {
  width:         100%;
  background:    #fff;
  color:         var(--pv-brand);
  border:        none;
  border-radius: var(--pv-radius-sm);
  padding:       10px;
  font-family:   var(--pv-font-body);
  font-size:     13px;
  font-weight:   600;
  cursor:        pointer;
  transition:    all 0.15s;
}

.pv-newsletter-form .pv-newsletter-submit:hover { background: rgba(255,255,255,0.9); }

.pv-newsletter-note {
  font-size:  11px;
  color:      rgba(255,255,255,0.45);
  text-align: center;
  margin-top: 8px;
}

/* Tag cloud widget */
.pv-tag-cloud { display: flex; flex-wrap: wrap; gap: 6px; }

.pv-tag-cloud a,
.pv-tag-cloud .tag-cloud-link {
  font-size:       12px !important;
  color:           var(--pv-text-secondary);
  border:          1px solid var(--pv-border);
  border-radius:   20px;
  padding:         4px 10px;
  text-decoration: none;
  transition:      all 0.15s;
}

.pv-tag-cloud a:hover,
.pv-tag-cloud .tag-cloud-link:hover {
  color:        var(--pv-brand);
  border-color: var(--pv-brand);
  background:   var(--pv-brand-light);
}

/* ============================================================
   SINGLE POST / ARTICLE PAGE
   ============================================================ */
.pv-post-hero {
  height:     360px;
  position:   relative;
  overflow:   hidden;
  background: linear-gradient(135deg, var(--pv-brand-light), #8CC4AD);
}

.pv-post-hero img {
  width:      100%;
  height:     100%;
  object-fit: cover;
}

.pv-post-hero-overlay {
  position:   absolute;
  inset:      0;
  background: linear-gradient(transparent 30%, rgba(15,40,30,0.72));
  display:    flex;
  align-items: flex-end;
  padding:    32px;
}

.pv-post-hero-meta { position: relative; z-index: 1; }

.pv-article-header { margin-bottom: 28px; }

.pv-article-header h1 {
  font-size:   clamp(24px, 3.5vw, 38px);
  line-height: 1.2;
  margin-bottom: 20px;
}

.pv-article-meta-bar {
  display:     flex;
  align-items: center;
  flex-wrap:   wrap;
  gap:         16px;
  padding:     16px 0;
  border-top:  1px solid var(--pv-border);
  border-bottom: 1px solid var(--pv-border);
  margin-bottom: 24px;
}

.pv-author {
  display:     flex;
  align-items: center;
  gap:         8px;
}

.pv-author-avatar {
  width:         32px;
  height:        32px;
  border-radius: 50%;
  overflow:      hidden;
  background:    var(--pv-brand-light);
  flex-shrink:   0;
}

.pv-author-avatar img { width: 100%; height: 100%; object-fit: cover; }

.pv-author-name { font-size: 13px; font-weight: 500; color: var(--pv-text-secondary); }

.pv-post-date,
.pv-read-time { font-size: 13px; color: var(--pv-text-muted); }

.pv-read-time { display: flex; align-items: center; gap: 4px; }

/* Affiliate disclosure */
.pv-affiliate-note {
  background:    var(--pv-accent-light);
  border:        1px solid #E8C078;
  border-radius: var(--pv-radius-sm);
  padding:       10px 14px;
  font-size:     12px;
  color:         #7A5A20;
  line-height:   1.5;
  margin-bottom: 24px;
}

/* Table of Contents */
.pv-toc {
  background:    var(--pv-bg);
  border:        1px solid var(--pv-border);
  border-radius: var(--pv-radius-md);
  padding:       20px;
  margin-bottom: 32px;
}

.pv-toc-title {
  font-size:      13px;
  font-weight:    600;
  color:          var(--pv-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom:  12px;
}

.pv-toc ol,
.pv-toc ul {
  list-style: none;
  padding:    0;
  margin:     0;
  display:    flex;
  flex-direction: column;
  gap:        6px;
}

.pv-toc li a {
  font-size:       13px;
  color:           var(--pv-text-secondary);
  text-decoration: none;
  display:         flex;
  align-items:     center;
  gap:             8px;
  transition:      color 0.15s;
}

.pv-toc li a::before {
  content:       '';
  width:         4px;
  height:        4px;
  border-radius: 50%;
  background:    var(--pv-border-strong);
  flex-shrink:   0;
}

.pv-toc li a:hover { color: var(--pv-brand); }

/* Article prose */
.pv-prose {
  font-size:   16px;
  line-height: 1.8;
  color:       var(--pv-text-secondary);
}

.pv-prose h2 {
  font-size:     22px;
  color:         var(--pv-text-primary);
  margin:        40px 0 14px;
  padding-top:   8px;
  border-top:    2px solid var(--pv-brand-light);
}

.pv-prose h3 { font-size: 18px; color: var(--pv-text-primary); margin: 28px 0 10px; }
.pv-prose h4 { font-size: 16px; color: var(--pv-text-primary); margin: 20px 0 8px; }
.pv-prose p  { margin-bottom: 20px; }

.pv-prose a {
  color:                  var(--pv-brand);
  text-decoration:        underline;
  text-decoration-thickness: 1px;
  text-underline-offset:  2px;
}

.pv-prose a:hover { color: var(--pv-brand-mid); }

.pv-prose strong { color: var(--pv-text-primary); font-weight: 600; }

.pv-prose ul,
.pv-prose ol {
  padding-left:  24px;
  margin-bottom: 20px;
  display:       flex;
  flex-direction: column;
  gap:           6px;
}

.pv-prose ul li::marker  { color: var(--pv-brand); }
.pv-prose ol li::marker  { color: var(--pv-brand); font-weight: 600; }

.pv-prose blockquote {
  border-left:   3px solid var(--pv-brand);
  padding:       16px 20px;
  margin:        24px 0;
  background:    var(--pv-brand-light);
  border-radius: 0 var(--pv-radius-sm) var(--pv-radius-sm) 0;
  font-style:    italic;
  color:         var(--pv-text-secondary);
}

.pv-prose img {
  border-radius: var(--pv-radius-md);
  margin:        24px 0;
  box-shadow:    var(--pv-shadow-sm);
}

.pv-prose table {
  width:           100%;
  border-collapse: collapse;
  margin:          24px 0;
  font-size:       14px;
}

.pv-prose th {
  background:   var(--pv-brand);
  color:        #fff;
  padding:      10px 14px;
  text-align:   left;
  font-weight:  600;
  font-family:  var(--pv-font-body);
}

.pv-prose td {
  padding:       10px 14px;
  border-bottom: 1px solid var(--pv-border);
  color:         var(--pv-text-secondary);
}

.pv-prose tr:nth-child(even) td { background: var(--pv-bg); }

/* Product card inside article */
.pv-product-card {
  background:    var(--pv-surface);
  border:        1px solid var(--pv-border);
  border-radius: var(--pv-radius-md);
  padding:       20px;
  margin:        28px 0;
  display:       flex;
  gap:           20px;
  align-items:   flex-start;
  box-shadow:    var(--pv-shadow-sm);
}

@media (max-width: 600px) {
  .pv-product-card { flex-direction: column; }
}

.pv-product-card-thumb {
  width:         100px;
  height:        100px;
  border-radius: var(--pv-radius-sm);
  overflow:      hidden;
  flex-shrink:   0;
  background:    var(--pv-brand-light);
}

.pv-product-card-thumb img { width: 100%; height: 100%; object-fit: cover; }

.pv-product-card-info { flex: 1; min-width: 0; }

.pv-product-rank {
  font-size:      11px;
  font-weight:    600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color:          var(--pv-accent);
  margin-bottom:  4px;
}

.pv-product-name {
  font-family:   var(--pv-font-display);
  font-size:     17px;
  font-weight:   600;
  color:         var(--pv-text-primary);
  margin-bottom: 6px;
  line-height:   1.3;
}

.pv-product-stars {
  display:       flex;
  align-items:   center;
  gap:           3px;
  margin-bottom: 8px;
}

.pv-product-stars svg { width: 14px; height: 14px; fill: var(--pv-accent); }

.pv-star-count { font-size: 12px; color: var(--pv-text-muted); margin-left: 4px; }

.pv-product-desc {
  font-size:     13px;
  color:         var(--pv-text-secondary);
  line-height:   1.5;
  margin-bottom: 14px;
}

.pv-product-footer { display: flex; align-items: center; gap: 14px; }

.pv-product-price { font-size: 17px; font-weight: 700; color: var(--pv-text-primary); }

.pv-product-btn {
  display:         inline-flex;
  align-items:     center;
  gap:             6px;
  background:      var(--pv-brand);
  color:           #fff;
  border:          none;
  border-radius:   var(--pv-radius-sm);
  padding:         9px 18px;
  font-family:     var(--pv-font-body);
  font-size:       13px;
  font-weight:     500;
  cursor:          pointer;
  text-decoration: none;
  transition:      background 0.15s;
}

.pv-product-btn:hover { background: var(--pv-brand-mid); color: #fff; }

/* ============================================================
   CATEGORY / ARCHIVE HEADER
   ============================================================ */
.pv-archive-header {
  background: linear-gradient(160deg, var(--pv-brand), var(--pv-brand-mid));
  padding:    48px 24px;
}

.pv-archive-eyebrow {
  font-size:   13px;
  color:       rgba(255,255,255,0.6);
  margin-bottom: 8px;
}

.pv-archive-title {
  font-family:    var(--pv-font-display);
  font-size:      clamp(26px, 4vw, 38px);
  font-weight:    600;
  color:          #fff;
  letter-spacing: -0.3px;
  margin-bottom:  10px;
}

.pv-archive-desc { font-size: 15px; color: rgba(255,255,255,0.7); max-width: 560px; }

/* ============================================================
   BACK BUTTON
   ============================================================ */
.pv-back-btn {
  display:         inline-flex;
  align-items:     center;
  gap:             6px;
  font-size:       13px;
  color:           var(--pv-text-muted);
  text-decoration: none;
  margin-bottom:   20px;
  transition:      color 0.15s;
  background:      none;
  border:          none;
  cursor:          pointer;
  font-family:     var(--pv-font-body);
  padding:         0;
}

.pv-back-btn:hover { color: var(--pv-brand); }

.pv-back-btn svg {
  width:        15px;
  height:       15px;
  fill:         none;
  stroke:       currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

/* ============================================================
   FOOTER
   ============================================================ */
.pv-footer {
  background: var(--pv-text-primary);
  margin-top: 0;
}

.pv-footer-top {
  display:               grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap:                   40px;
  padding:               56px 0 40px;
}

@media (max-width: 760px) {
  .pv-footer-top { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px) {
  .pv-footer-top { grid-template-columns: 1fr; }
}

.pv-footer-brand-desc {
  font-size:   13px;
  color:       rgba(255,255,255,0.5);
  line-height: 1.65;
  margin-top:  14px;
  max-width:   280px;
}

.pv-footer-col-title {
  font-size:      12px;
  font-weight:    600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color:          rgba(255,255,255,0.35);
  margin-bottom:  14px;
}

.pv-footer-links {
  display:        flex;
  flex-direction: column;
  gap:            8px;
  list-style:     none;
  padding:        0;
  margin:         0;
}

.pv-footer-links a {
  font-size:       13px;
  color:           rgba(255,255,255,0.55);
  text-decoration: none;
  transition:      color 0.15s;
}

.pv-footer-links a:hover { color: rgba(255,255,255,0.9); }

.pv-footer-bottom {
  border-top:      1px solid rgba(255,255,255,0.08);
  padding:         20px 0;
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  flex-wrap:       wrap;
  gap:             12px;
  font-size:       12px;
  color:           rgba(255,255,255,0.3);
}

.pv-footer-bottom a { color: rgba(255,255,255,0.3); text-decoration: none; transition: color 0.15s; }
.pv-footer-bottom a:hover { color: rgba(255,255,255,0.65); }

.pv-footer-legal { display: flex; gap: 16px; }

/* ============================================================
   BUTTONS (global)
   ============================================================ */
.pv-btn {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  gap:             8px;
  border-radius:   var(--pv-radius-sm);
  font-family:     var(--pv-font-body);
  font-weight:     500;
  cursor:          pointer;
  text-decoration: none;
  transition:      all 0.15s;
  border:          none;
}

.pv-btn-primary {
  background: var(--pv-brand);
  color:      #fff;
  padding:    10px 22px;
  font-size:  14px;
}

.pv-btn-primary:hover { background: var(--pv-brand-mid); color: #fff; }

.pv-btn-outline {
  background:   transparent;
  color:        var(--pv-brand);
  border:       1px solid var(--pv-brand);
  padding:      9px 20px;
  font-size:    14px;
}

.pv-btn-outline:hover { background: var(--pv-brand); color: #fff; }

/* ============================================================
   ELEMENTOR WIDGET OVERRIDES
   (scoped so they don't break Elementor editor)
   ============================================================ */
.elementor-widget-text-editor .pv-prose { all: unset; }

/* Ensure Elementor containers respect our max-width */
.elementor-section.pv-full-width > .elementor-container { max-width: var(--pv-container); }

/* ============================================================
   WORDPRESS CORE WIDGET RESETS
   ============================================================ */
.widget_recent_entries ul,
.widget_categories ul,
.widget_pages ul,
.widget_archive ul,
.widget_meta ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.widget_recent_entries ul li,
.widget_categories ul li {
  padding:       7px 0;
  border-bottom: 1px solid var(--pv-border);
  font-size:     13px;
}

.widget_recent_entries ul li:last-child,
.widget_categories ul li:last-child { border-bottom: none; }

.widget_recent_entries ul li a,
.widget_categories ul li a {
  color:           var(--pv-text-secondary);
  text-decoration: none;
  transition:      color 0.15s;
}

.widget_recent_entries ul li a:hover,
.widget_categories ul li a:hover { color: var(--pv-brand); }

/* WP native search widget */
.widget_search .search-form { display: flex; gap: 8px; }
.widget_search .search-field {
  flex:          1;
  border:        1px solid var(--pv-border);
  border-radius: var(--pv-radius-sm);
  padding:       8px 12px;
  font-family:   var(--pv-font-body);
  font-size:     13px;
  outline:       none;
}
.widget_search .search-field:focus { border-color: var(--pv-brand); }
.widget_search .search-submit {
  background:    var(--pv-brand);
  color:         #fff;
  border:        none;
  border-radius: var(--pv-radius-sm);
  padding:       8px 14px;
  cursor:        pointer;
  font-family:   var(--pv-font-body);
  font-size:     13px;
  font-weight:   500;
  transition:    background 0.15s;
}
.widget_search .search-submit:hover { background: var(--pv-brand-mid); }

/* ============================================================
   ANIMATIONS
   ============================================================ */
@keyframes pv-fade-up {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.pv-animate { animation: pv-fade-up 0.5s ease both; }
.pv-animate-delay-1 { animation-delay: 0.1s; }
.pv-animate-delay-2 { animation-delay: 0.2s; }
.pv-animate-delay-3 { animation-delay: 0.3s; }

/* ============================================================
   ACCESSIBILITY
   ============================================================ */
:focus-visible {
  outline:        2px solid var(--pv-brand);
  outline-offset: 3px;
  border-radius:  2px;
}

.screen-reader-text {
  position:  absolute !important;
  clip:      rect(1px,1px,1px,1px);
  height:    1px;
  width:     1px;
  overflow:  hidden;
  word-wrap: normal !important;
}

/* ============================================================
   PRINT
   ============================================================ */
@media print {
  .pv-nav, .pv-footer, .pv-sidebar, .pv-cat-strip { display: none; }
  .pv-content-sidebar { grid-template-columns: 1fr; }
  body { font-size: 12pt; background: #fff; }
}
