/* ===== WeddingVectors additions on top of style.css ===== */

/* Top bar */
.wv-topbar {
  background: linear-gradient(90deg, #ff6b81, var(--pink));
  color: #fff;
  font-size: 0.78rem;
  padding: 6px 0;
  font-family: 'Outfit', sans-serif;
}
.wv-topbar-inner {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.wv-topbar-nav { display: flex; gap: 14px; flex-wrap: wrap; }
.wv-topbar-nav a { color: #fff; opacity: 0.95; white-space: nowrap; }
.wv-topbar-nav a:hover { opacity: 1; text-decoration: underline; }

/* Signup button */
.wv-signup { background: var(--pink) !important; color: #fff !important; }

/* Credits badge */
.wv-credits-badge { background: var(--green) !important; color: #fff !important; }

/* Cart badge */
.wv-cart-badge {
  display: inline-block; background: var(--pink); color: #fff;
  border-radius: 50%; font-size: 0.7rem;
  min-width: 16px; height: 16px; line-height: 16px; text-align: center;
}

/* Flash messages */
.wv-flash {
  padding: 12px 20px; margin: 12px auto; max-width: 1280px;
  border-radius: var(--radius-md); font-family: 'Outfit', sans-serif; font-size: 0.9rem;
}
.wv-flash-success { background: #e8f8f0; color: #0a7a5b; border: 1px solid #b8f0dc; }
.wv-flash-error { background: #ffeef1; color: #c0392b; border: 1px solid #ffd1d1; }

/* Product detail */
.wv-product-detail { padding: 40px 0; }
.wv-pd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 900px){ .wv-pd-grid{ grid-template-columns: 1fr; } }
.wv-pd-image { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); background: var(--pink-bg); }
.wv-pd-image img { width: 100%; object-fit: cover; }
.wv-pd-info h1 { font-family: 'Outfit',sans-serif; color: var(--navy); font-size: 1.9rem; margin-bottom: 14px; }
.wv-badge { display:inline-block; background: var(--pink-light); color:#fff; border-radius:20px; padding:3px 12px; font-size:0.72rem; margin:0 6px 6px 0; }
.wv-pd-desc { color: var(--body-text); margin: 16px 0; line-height: 1.7; }
.wv-pd-tags { margin: 12px 0; }
.wv-pd-tags span { display:inline-block; background: var(--gray-100); border-radius:20px; padding:4px 12px; font-size:0.75rem; margin-right:6px; margin-bottom:6px; color: var(--gray-700); }
.wv-price-box { background: var(--pink-bg); border-radius: var(--radius-lg); padding: 22px; margin: 20px 0; }
.wv-price-row { display:flex; align-items:baseline; gap:12px; }
.wv-price { font-size:2rem; font-weight:800; color: var(--navy); }
.wv-price-note { color: var(--muted); font-size:0.85rem; }

/* License selector */
.wv-license-opt {
  border: 2px solid var(--gray-200); border-radius: var(--radius-md);
  padding: 16px; margin: 12px 0; cursor: pointer; transition: var(--transition);
}
.wv-license-opt.selected { border-color: var(--pink); background: var(--pink-bg); }
.wv-license-opt h4 { font-family:'Outfit',sans-serif; color: var(--navy); }
.wv-license-opt p { font-size: 0.82rem; color: var(--muted); margin-top:4px; }
.wv-license-price { float:right; font-weight:700; color: var(--pink); }

/* Buttons */
.wv-btn {
  display:inline-block; background: linear-gradient(90deg, var(--pink), var(--pink-light));
  color:#fff !important; padding: 14px 28px; border-radius: 50px;
  font-family:'Outfit',sans-serif; font-weight:600; border:none; cursor:pointer;
  font-size: 0.95rem; transition: var(--transition);
}
.wv-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.wv-btn-block { display:block; width:100%; text-align:center; }
.wv-btn-secondary { background: var(--navy); }
.wv-btn-ghost { background: transparent; border:2px solid var(--navy); color: var(--navy) !important; }
.wv-btn-sm { padding: 9px 18px; font-size: 0.82rem; }

/* Pricing page */
.wv-pricing-section { padding: 50px 0; }
.wv-pricing-section h1 { font-family:'Outfit',sans-serif; color: var(--navy); text-align:center; font-size:2.2rem; }
.wv-pricing-sub { text-align:center; color: var(--muted); margin-bottom: 40px; }
.wv-plans { display:grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 24px; }
.wv-plan {
  background:#fff; border:1px solid var(--gray-200); border-radius: var(--radius-xl);
  padding: 28px; box-shadow: var(--shadow-sm); display:flex; flex-direction:column; transition: var(--transition);
  position: relative;
}
.wv-plan:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: var(--pink); }
.wv-plan.highlight { border: 2px solid var(--pink); box-shadow: var(--shadow-md); }
.wv-plan .badge {
  position:absolute; top:-12px; right:20px; background: var(--green); color:#fff;
  padding:4px 14px; border-radius:20px; font-size:0.72rem; font-family:'Outfit',sans-serif;
}
.wv-plan h3 { font-family:'Outfit',sans-serif; color: var(--navy); font-size:1.2rem; }
.wv-plan .pkg-price { font-size:2.4rem; font-weight:800; color: var(--pink); margin: 10px 0 4px; }
.wv-plan .pkg-credits { color: var(--navy); font-weight:600; font-size:0.95rem; }
.wv-plan ul { margin: 18px 0; flex:1; }
.wv-plan ul li { padding: 6px 0; font-size: 0.88rem; color: var(--body-text); border-bottom: 1px dashed var(--gray-100); }
.wv-plan ul li .check { color: var(--green); margin-right: 6px; }
.wv-bonus { color: var(--green); font-weight:700; }

/* License note */
.wv-license-banner {
  background: #fff7e6; border:1px solid #f3d9a4; color:#8a6d3b;
  border-radius: var(--radius-md); padding: 14px 18px; margin: 20px 0 8px;
  font-size: 0.85rem;
}

/* Account / auth */
.wv-auth-wrap { max-width: 460px; margin: 40px auto; background:#fff; border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); padding: 34px; }
.wv-auth-wrap h1 { font-family:'Outfit',sans-serif; color: var(--navy); margin-bottom: 6px; }
.wv-auth-wrap .sub { color: var(--muted); font-size:0.9rem; margin-bottom:22px; }
.wv-field { margin-bottom: 16px; }
.wv-field label { display:block; font-size:0.85rem; font-weight:600; color: var(--navy); margin-bottom:6px; }
.wv-field input, .wv-field select, .wv-field textarea {
  width:100%; padding: 12px 14px; border:1px solid var(--gray-300); border-radius: var(--radius-md);
  font-family:'Outfit',sans-serif; font-size:0.92rem; transition: var(--transition);
}
.wv-field input:focus, .wv-field textarea:focus { outline:none; border-color: var(--pink); box-shadow: 0 0 0 3px rgba(232,67,147,0.12); }
.wv-auth-alt { text-align:center; margin-top:18px; font-size:0.88rem; color: var(--muted); }
.wv-auth-alt a { color: var(--pink); font-weight:600; }

/* Account dashboard */
.wv-dash { display:grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap:20px; margin-bottom:30px; }
.wv-dash-card { background:#fff; border-radius: var(--radius-lg); padding: 22px; box-shadow: var(--shadow-sm); text-align:center; }
.wv-dash-card .num { font-size:2rem; font-weight:800; color: var(--pink); }
.wv-dash-card .lbl { color: var(--muted); font-size:0.85rem; }
.wv-dash-card a { font-size:0.82rem; color: var(--pink); }

/* Tables */
.wv-table { width:100%; border-collapse: collapse; background:#fff; border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-sm); }
.wv-table th { background: var(--navy); color:#fff; text-align:left; padding:12px 14px; font-family:'Outfit',sans-serif; font-size:0.8rem; }
.wv-table td { padding:12px 14px; border-bottom:1px solid var(--gray-100); font-size:0.88rem; color: var(--body-text); }
.wv-table tr:hover td { background: var(--pink-bg); }

/* Product cards dynamic */
.wv-product-card {
  background:#fff; border-radius: var(--radius-lg); overflow:hidden;
  border:1px solid var(--gray-100); box-shadow: var(--shadow-sm);
  transition: var(--transition); display:flex; flex-direction:column;
}
.wv-product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.wv-product-card .img { aspect-ratio:1; overflow:hidden; background: var(--pink-bg); }
.wv-product-card .img img { width:100%; height:100%; object-fit:cover; transition: var(--transition); }
.wv-product-card:hover .img img { transform: scale(1.05); }
.wv-product-card .body { padding: 14px; display:flex; flex-direction:column; flex:1; }
.wv-product-card .title { font-family:'Outfit',sans-serif; font-weight:600; color: var(--navy); font-size:0.92rem; line-height:1.35; }
.wv-product-card .meta { display:flex; justify-content:space-between; align-items:center; margin-top:10px; }
.wv-product-card .format-tags span {
  font-size:0.62rem; background:var(--gray-100); color:var(--gray-600);
  border-radius:4px; padding:2px 6px; margin-right:3px;
}
.wv-product-card .actions { margin-top:12px; display:flex; gap:8px; }
.wv-btn-mini { flex:1; background: linear-gradient(90deg, var(--pink), var(--pink-light)); color:#fff; border:none; padding:9px; border-radius:20px; font-family:'Outfit',sans-serif; font-weight:600; font-size:0.8rem; cursor:pointer; text-align:center; }
.wv-btn-fav { background:#fff; border:1px solid var(--gray-200); color: var(--pink); border-radius:50%; width:36px; height:36px; cursor:pointer; font-size:1rem; }

/* Section titles */
.wv-section-title { font-family:'Outfit',sans-serif; color: var(--navy); font-size:1.6rem; margin: 8px 0 22px; text-align:center; }
.wv-section { padding: 50px 0; }
.wv-section.alt { background: var(--pink-bg); }

/* Page hero for inner pages */
.wv-page-hero { background: linear-gradient(120deg, var(--pink-pale), var(--pink-bg)); padding: 70px 20px; text-align:center; }
.wv-page-hero h1 { font-family:'Dancing Script', cursive; font-size:3rem; color: var(--navy); }
.wv-page-hero p { color: var(--muted); max-width: 700px; margin: 10px auto 0; }

/* Legal / content pages */
.wv-content { max-width: 860px; margin: 40px auto; padding: 40px; background:#fff; border-radius: var(--radius-xl); box-shadow: var(--shadow-sm); }
.wv-content h2 { font-family:'Outfit',sans-serif; color: var(--navy); margin: 28px 0 12px; font-size:1.3rem; }
.wv-content p { margin: 10px 0; line-height: 1.7; color: var(--body-text); }
.wv-content ul { margin: 10px 0 10px 20px; list-style: disc; }
.wv-content li { margin: 6px 0; color: var(--body-text); }
.wv-content h1 { font-family:'Outfit',sans-serif; color: var(--navy); margin-bottom: 6px; }
.wv-content .effective { color: var(--muted); font-size:0.88rem; font-style:italic; margin-bottom: 24px; }

/* Contact form */
.wv-contact-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 800px){ .wv-contact-grid{ grid-template-columns:1fr; } }

/* Cart */
.wv-cart-item { display:flex; gap:16px; align-items:center; background:#fff; border-radius: var(--radius-lg); padding:16px; margin-bottom:14px; box-shadow: var(--shadow-sm); }
.wv-cart-item img { width:90px; height:90px; object-fit:cover; border-radius: var(--radius-md); }
.wv-cart-item .cc-title { font-family:'Outfit',sans-serif; font-weight:600; color:var(--navy); }
.wv-cart-totals { background:#fff; border-radius: var(--radius-lg); padding:22px; box-shadow: var(--shadow-sm); }

/* Product grid using dynamic cards */
.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
}
@media (max-width: 640px){ .product-grid{ grid-template-columns: repeat(2, 1fr); gap: 12px; } }

/* Replace old static product-card styling conflicts */
.product-card { border: 1px solid var(--gray-100); box-shadow: var(--shadow-sm); }
.product-card .card-fav { cursor:pointer; }

/* Auth inline forms */
.wv-form-inline { display:flex; }
.wv-form-inline input { flex:1; }
.wv-form-inline button { background: var(--navy); color:#fff; border:none; border-radius:0 6px 6px 0; padding:0 18px; }

/* How it works timeline */
.wv-steps { max-width: 760px; margin: 0 auto; position: relative; padding-left: 40px; }
.wv-steps::before { content:''; position:absolute; left:14px; top:0; bottom:0; width:2px; background: var(--pink-light); }
.wv-step { position:relative; margin-bottom: 30px; }
.wv-step::before {
  content: attr(data-num); position:absolute; left:-40px; top:0; width:30px; height:30px;
  background: linear-gradient(90deg, var(--pink), var(--pink-light)); color:#fff; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-family:'Outfit',sans-serif; font-weight:700; font-size:0.8rem;
}
.wv-step h3 { font-family:'Outfit',sans-serif; color: var(--navy); }
.wv-step p { color: var(--muted); margin-top:4px; }
