/*
Theme Name:  Subscription Child
Theme URI:   https://subscriptionsstaging.veriteresearch.org
Description: Astra child theme for Verité Research subscription platform.
Author:      Verité Research
Template:    astra
Version:     1.0.0
Text Domain: subscription-child
*/

/* ============================================================
   BRAND TOKENS
   ============================================================ */
:root {
  --vr-crimson:      #680c0d;
  --vr-deep-purple:  #47007a;
  --vr-mid-purple:   #6b479c;
  --vr-lavender:     #8e8dbe;
  --vr-white:        #ffffff;
  --vr-gray-50:      #f9fafb;
  --vr-gray-100:     #f3f4f6;
  --vr-gray-200:     #e5e7eb;
  --vr-gray-300:     #d1d5db;
  --vr-gray-500:     #6b7280;
  --vr-gray-600:     #4b5563;
  --vr-gray-700:     #374151;
  --vr-gray-900:     #111827;
  --vr-radius:       6px;
  --vr-radius-lg:    12px;
  --vr-radius-xl:    16px;
  --vr-shadow-sm:    0 1px 3px rgba(0,0,0,0.08);
  --vr-shadow-md:    0 4px 12px rgba(0,0,0,0.10);
  --vr-shadow-lg:    0 10px 25px rgba(0,0,0,0.12);
}

/* ============================================================
   GLOBAL TYPOGRAPHY — Raleway
   ============================================================ */
body,
.elementor-widget-container,
.woocommerce,
.woocommerce-page {
  font-family: 'Raleway', sans-serif !important;
  color: var(--vr-gray-600);
  background-color: var(--vr-white);
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: 'Raleway', sans-serif !important;
  color: var(--vr-gray-900);
  font-weight: 700;
  line-height: 1.25;
}

h1 { font-size: clamp(2.25rem, 5vw, 3.75rem); font-weight: 800; line-height: 1.15; }
h2 { font-size: clamp(1.5rem, 3vw, 1.875rem); }
h3 { font-size: 1.25rem; }
h4 { font-size: 1rem; }

p { line-height: 1.75; }

a {
  color: var(--vr-crimson);
  text-decoration: none;
}
a:hover { opacity: 0.8; text-decoration: underline; }

/* ============================================================
   ASTRA HEADER / NAVIGATION OVERRIDES
   ============================================================ */
#masthead,
.ast-primary-header-bar,
.site-header {
  background-color: var(--vr-white) !important;
  border-bottom: 1px solid var(--vr-gray-100) !important;
  position: sticky;
  top: 0;
  z-index: 999;
  box-shadow: none !important;
}

.ast-primary-header-bar {
  min-height: 80px;
}

/* Logo */
.ast-site-logo-img,
.custom-logo {
  height: 40px !important;
  width: auto !important;
  object-fit: contain;
}

/* Nav links */
.main-header-menu .menu-item > a,
.ast-builder-menu .menu-item > a {
  font-family: 'Raleway', sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  color: var(--vr-gray-600) !important;
  padding: 8px 0 !important;
}
.main-header-menu .menu-item > a:hover,
.main-header-menu .current-menu-item > a {
  color: var(--vr-crimson) !important;
  text-decoration: none !important;
}

/* Header CTA button (Sign In / My Account) */
.ast-header-button-1 .ast-custom-button,
.header-widget-area .menu-item a.ast-button {
  font-family: 'Raleway', sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  border: 2px solid var(--vr-crimson) !important;
  color: var(--vr-crimson) !important;
  background: transparent !important;
  padding: 8px 20px !important;
  border-radius: var(--vr-radius) !important;
  transition: background 0.2s, color 0.2s !important;
}
.ast-header-button-1 .ast-custom-button:hover {
  background: var(--vr-crimson) !important;
  color: var(--vr-white) !important;
}

/* Mobile menu */
.ast-mobile-menu-trigger svg,
.ast-mobile-menu-trigger span {
  color: var(--vr-gray-600);
}
.ast-mobile-menu-trigger:hover svg,
.ast-mobile-menu-trigger:hover span {
  color: var(--vr-crimson);
}

/* ============================================================
   BUTTONS
   ============================================================ */
.vr-btn-primary,
.elementor-button.vr-btn-primary,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #place_order {
  font-family: 'Raleway', sans-serif !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  background-color: var(--vr-crimson) !important;
  color: var(--vr-white) !important;
  border: none !important;
  padding: 12px 32px !important;
  border-radius: var(--vr-radius) !important;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.15s, box-shadow 0.2s !important;
  box-shadow: 0 4px 6px rgba(104,12,13,0.2) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none !important;
}
.vr-btn-primary:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #place_order:hover {
  opacity: 0.9 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 12px rgba(104,12,13,0.25) !important;
  color: var(--vr-white) !important;
}

.vr-btn-outline,
.elementor-button.vr-btn-outline {
  font-family: 'Raleway', sans-serif !important;
  font-weight: 700 !important;
  background: transparent !important;
  border: 2px solid var(--vr-crimson) !important;
  color: var(--vr-crimson) !important;
  padding: 10px 32px !important;
  border-radius: var(--vr-radius) !important;
  transition: background 0.2s, color 0.2s !important;
  text-decoration: none !important;
}
.vr-btn-outline:hover {
  background: var(--vr-crimson) !important;
  color: var(--vr-white) !important;
}

/* Purple button variant (Political Analysis product) */
.vr-btn-purple {
  background-color: var(--vr-deep-purple) !important;
  box-shadow: 0 4px 6px rgba(71,0,122,0.2) !important;
}
.vr-btn-purple:hover {
  background-color: var(--vr-mid-purple) !important;
}

/* ============================================================
   FORM INPUTS
   ============================================================ */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="number"],
textarea,
select,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="password"],
.elementor-field-group input,
.elementor-field-group textarea {
  font-family: 'Raleway', sans-serif !important;
  font-size: 1rem !important;
  border: 1px solid var(--vr-gray-300) !important;
  border-radius: var(--vr-radius) !important;
  padding: 10px 12px !important;
  background: var(--vr-white) !important;
  color: var(--vr-gray-900) !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  width: 100%;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus,
.woocommerce input:focus {
  border-color: var(--vr-crimson) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(104,12,13,0.12) !important;
}

label,
.woocommerce label {
  font-family: 'Raleway', sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  color: var(--vr-gray-700) !important;
  display: block;
  margin-bottom: 4px;
}

/* ============================================================
   CARDS
   ============================================================ */
.vr-card {
  background: var(--vr-white);
  border: 1px solid var(--vr-gray-200);
  border-radius: var(--vr-radius-lg);
  padding: 32px;
  box-shadow: var(--vr-shadow-sm);
  transition: box-shadow 0.2s;
}
.vr-card:hover { box-shadow: var(--vr-shadow-md); }

.vr-card--highlighted {
  border: 2px solid var(--vr-crimson);
  box-shadow: var(--vr-shadow-md);
}
.vr-card--highlighted-purple {
  border: 2px solid var(--vr-deep-purple);
}

/* ============================================================
   PRICING SECTION
   ============================================================ */
.vr-pricing-section {
  background-color: rgba(104, 12, 13, 0.03);
  padding: 96px 0;
}

.vr-pricing-tab {
  border-radius: 9999px;
  padding: 10px 24px;
  font-size: 0.875rem;
  font-weight: 700;
  font-family: 'Raleway', sans-serif;
  border: 1px solid var(--vr-gray-200);
  background: var(--vr-white);
  color: var(--vr-gray-600);
  cursor: pointer;
  transition: all 0.2s;
}
.vr-pricing-tab:hover { border-color: var(--vr-crimson); color: var(--vr-crimson); }
.vr-pricing-tab.active { background: var(--vr-crimson); color: var(--vr-white); border-color: var(--vr-crimson); box-shadow: var(--vr-shadow-sm); }
.vr-pricing-tab.active-purple { background: var(--vr-deep-purple); border-color: var(--vr-deep-purple); color: var(--vr-white); }

.vr-price-badge {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  background: var(--vr-gray-900);
  color: var(--vr-white);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 16px;
  border-radius: 9999px;
}
.vr-price-badge--purple { background: var(--vr-deep-purple); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer,
#colophon {
  background-color: var(--vr-gray-50) !important;
  border-top: 1px solid var(--vr-gray-100) !important;
  padding: 48px 0 !important;
  margin-top: 80px;
}
.site-footer .ast-footer-copyright,
.site-footer p {
  font-family: 'Raleway', sans-serif !important;
  font-size: 0.875rem !important;
  color: var(--vr-gray-500) !important;
}


/* ============================================================
   WOOCOMMERCE — MY ACCOUNT
   ============================================================ */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  border-radius: var(--vr-radius);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--vr-gray-600);
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--vr-gray-50);
  color: var(--vr-crimson);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--vr-crimson);
  color: var(--vr-white);
}

.woocommerce-account .woocommerce-MyAccount-content h2 {
  font-size: 1.5rem;
  color: var(--vr-gray-900);
  font-weight: 700;
  margin-bottom: 8px;
}

/* Subscription status badges */
.subscription-status-active {
  background: var(--vr-deep-purple);
  color: var(--vr-white);
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 2px 10px;
  border-radius: 0 0 0 6px;
}

/* ============================================================
   PMPRO OVERRIDES
   ============================================================ */
.pmpro_message,
.pmpro_error {
  font-family: 'Raleway', sans-serif !important;
  border-radius: var(--vr-radius) !important;
}

.pmpro_checkout .pmpro_submit input[type="submit"] {
  background-color: var(--vr-crimson) !important;
  font-family: 'Raleway', sans-serif !important;
  font-weight: 700 !important;
}

/* ============================================================
   ELEMENTOR COMPATIBILITY
   ============================================================ */
.elementor-section,
.elementor-container {
  font-family: 'Raleway', sans-serif;
}

.elementor-button {
  font-family: 'Raleway', sans-serif !important;
  font-weight: 700 !important;
  border-radius: var(--vr-radius) !important;
}

/* Elementor form fields */
.elementor-field-group .elementor-field {
  font-family: 'Raleway', sans-serif !important;
}

/* Hero eyebrow text helper class */
.vr-eyebrow {
  color: var(--vr-crimson);
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-size: 0.75rem;
  font-family: 'Raleway', sans-serif;
}

/* Highlight span inside headings */
.vr-text-crimson { color: var(--vr-crimson) !important; }
.vr-text-purple  { color: var(--vr-deep-purple) !important; }

/* Floating stat card used in hero */
.vr-stat-card {
  background: var(--vr-white);
  border: 1px solid var(--vr-gray-100);
  border-radius: 12px;
  padding: 24px;
  box-shadow: var(--vr-shadow-lg);
}

/* FAQ accordion helpers */
.vr-faq-item {
  background: var(--vr-white);
  border: 1px solid var(--vr-gray-200);
  border-radius: var(--vr-radius-lg);
  padding: 24px;
  box-shadow: var(--vr-shadow-sm);
  cursor: pointer;
  transition: box-shadow 0.2s;
}
.vr-faq-item:hover { box-shadow: var(--vr-shadow-md); }
.vr-faq-q { color: var(--vr-crimson); font-weight: 800; font-size: 1.25rem; margin-right: 8px; }

/* Upsell border-left cards */
.vr-upsell-card {
  border-left: 4px solid var(--vr-crimson);
  border-top: 1px solid var(--vr-gray-200);
  border-right: 1px solid var(--vr-gray-200);
  border-bottom: 1px solid var(--vr-gray-200);
  border-radius: 0 var(--vr-radius) var(--vr-radius) 0;
  padding: 24px;
  background: var(--vr-white);
  transition: box-shadow 0.2s;
  cursor: pointer;
}
.vr-upsell-card:hover { box-shadow: var(--vr-shadow-md); }
.vr-upsell-card:hover h4 { color: var(--vr-crimson); }

/* Responsive helpers */
@media (max-width: 768px) {
  h1 { font-size: 2.25rem; }
  h2 { font-size: 1.5rem; }
  .vr-pricing-section { padding: 48px 0; }
  .site-footer { margin-top: 40px; }
}


/* ============================================================
   Xpro Header Overrides
   ============================================================ */

/* Header wrapper */
.xpro-theme-builder-header {
    background: #ffffff;
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
    position: sticky;
    top: 0;
    z-index: 9999;
}

.xpro-theme-builder-header .elementor-section {
    background: #ffffff !important;
}

/* Logo */
.xpro-theme-builder-header .vr-header-logo img,
.xpro-theme-builder-header .elementor-widget-image img {
    max-height: 52px;
    width: auto;
}

/* Nav links */
.xpro-theme-builder-header .elementor-nav-menu a {
    font-family: var(--vr-font) !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    color: #333333 !important;
    text-decoration: none !important;
}

.xpro-theme-builder-header .elementor-nav-menu a:hover,
.xpro-theme-builder-header .elementor-nav-menu .current-menu-item > a {
    color: var(--vr-crimson) !important;
}

/* Sign In button */
.xpro-theme-builder-header .elementor-widget-button .elementor-button {
    color: var(--vr-crimson) !important;
    background: transparent !important;
    border: 2px solid var(--vr-crimson) !important;
    border-radius: 4px !important;
    font-family: var(--vr-font) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    padding: 8px 20px !important;
    transition: all .2s ease !important;
}

.xpro-theme-builder-header .elementor-widget-button .elementor-button:hover {
    background: var(--vr-crimson) !important;
    color: #ffffff !important;
}


/* ============================================================
   Account Button & Dropdown
   ============================================================ */

.vr-sign-in-btn {
    display: inline-block;
    color: var(--vr-crimson) !important;
    background: transparent !important;
    border: 2px solid var(--vr-crimson) !important;
    border-radius: 4px !important;
    font-family: var(--vr-font) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    padding: 8px 20px !important;
    text-decoration: none !important;
    transition: all .2s ease !important;
    line-height: 1.4;
}

.vr-sign-in-btn:hover {
    background: var(--vr-crimson) !important;
    color: #ffffff !important;
}

.vr-account-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
}

.vr-account-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 4px;
    color: #333333;
    transition: background .15s ease;
}

.vr-account-trigger:hover {
    background: rgba(104,12,13,.06);
}

.vr-person-icon {
    color: #5a3e7a;
    transition: color .15s ease;
}
.vr-account-trigger:hover .vr-person-icon {
    color: var(--vr-crimson, #680c0d);
}

.vr-chevron {
    color: #888;
    transition: transform .2s ease;
}

.vr-account-wrap.is-open .vr-chevron {
    transform: rotate(180deg);
}

.vr-account-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 160px;
    background: #ffffff;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0,0,0,.12);
    list-style: none;
    margin: 0;
    padding: 6px 0;
    z-index: 10000;
}

.vr-account-wrap.is-open .vr-account-dropdown {
    display: block;
}

.vr-account-dropdown li a {
    display: block;
    padding: 9px 16px;
    font-family: var(--vr-font) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #333333 !important;
    text-decoration: none !important;
    transition: background .15s, color .15s;
}

.vr-account-dropdown li a:hover {
    background: rgba(104,12,13,.06);
    color: var(--vr-crimson) !important;
}

.vr-account-dropdown li:last-child a {
    border-top: 1px solid #f0f0f0;
    margin-top: 4px;
    padding-top: 10px;
    color: #666 !important;
}

.vr-account-dropdown li:last-child a:hover {
    color: var(--vr-crimson) !important;
}


/* ============================================================
   Shared Section Styles
   ============================================================ */
.vr-container { max-width: 1200px; margin: 0 auto; padding: 0 40px; }
.vr-section-header { text-align: center; margin-bottom: 48px; }
.vr-section-title { font-family: var(--vr-font); font-size: 2rem; font-weight: 700; margin-bottom: 12px; }
.vr-section-subtitle { font-family: var(--vr-font); color: #666; font-size: 1.05rem; max-width: 600px; margin: 0 auto; }

/* ============================================================
   Hero Section
   ============================================================ */
.vr-hero { position: relative; overflow: hidden; }
.vr-hero .elementor-section-wrap,
.vr-hero-inner { max-width: 1200px; margin: 0 auto; }
.vr-eyebrow { font-size: 11px !important; font-weight: 700 !important; letter-spacing: .2em !important; text-transform: uppercase !important; color: var(--vr-crimson) !important; margin-bottom: 12px !important; }
.vr-hero-card { background: #fff; border: 1px solid #f0f0f0; border-radius: 12px; padding: 20px 24px; box-shadow: 0 8px 30px rgba(0,0,0,.12); display: inline-flex; align-items: center; gap: 16px; }
.vr-hero-card-icon { width: 48px; height: 48px; background: rgba(104,12,13,.08); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.vr-hero-card-icon svg { color: var(--vr-crimson); }
.vr-hero-card p { margin: 0; }
.vr-hero-card .label { font-size: 13px; color: #888; font-weight: 500; }
.vr-hero-card .value { font-size: 18px; font-weight: 800; color: var(--vr-crimson); }
.vr-btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.vr-btn-primary { display: inline-flex; align-items: center; gap: 6px; background: var(--vr-crimson); color: #fff !important; padding: 14px 28px; border-radius: 6px; font-family: var(--vr-font); font-weight: 700; font-size: 15px; text-decoration: none; transition: opacity .2s; box-shadow: 0 4px 12px rgba(104,12,13,.3); }
.vr-btn-primary:hover { opacity: .88; color: #fff !important; }
.vr-btn-outline { display: inline-flex; align-items: center; gap: 6px; background: #fff; color: var(--vr-crimson) !important; border: 2px solid var(--vr-crimson); padding: 12px 28px; border-radius: 6px; font-family: var(--vr-font); font-weight: 700; font-size: 15px; text-decoration: none; transition: all .2s; }
.vr-btn-outline:hover { background: var(--vr-crimson); color: #fff !important; }

/* ============================================================
   Pricing Section
   ============================================================ */
.vr-pricing-section { background: rgba(104,12,13,.03); padding: 96px 0; }
.vr-product-tabs { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 48px; }
.vr-tab-btn { padding: 10px 24px; border-radius: 50px; border: 1px solid #ddd; background: #fff; font-family: var(--vr-font); font-size: 13px; font-weight: 700; color: #666; cursor: pointer; transition: all .2s; }
.vr-tab-btn:hover { border-color: var(--vr-crimson); color: var(--vr-crimson); }
.vr-tab-btn.active { border-color: transparent; }
.vr-product-panel { display: none; }
.vr-product-panel.active { display: block; }
.vr-product-desc { text-align: center; max-width: 700px; margin: 0 auto 40px; }
.vr-product-name { font-family: var(--vr-font); font-size: 1.5rem; font-weight: 700; color: #111; margin-bottom: 10px; }
.vr-product-text { font-family: var(--vr-font); color: #666; font-size: 1rem; line-height: 1.7; }
.vr-pricing-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; max-width: 960px; margin: 0 auto; }
@media(max-width:768px){ .vr-pricing-cards { grid-template-columns: 1fr; } }
.vr-pricing-card { background: #fff; border: 1px solid #e8e8e8; border-radius: 12px; padding: 32px; box-shadow: 0 2px 8px rgba(0,0,0,.06); display: flex; flex-direction: column; position: relative; transition: box-shadow .2s; }
.vr-pricing-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.1); }
.vr-pricing-card.popular { border: 2px solid var(--plan-color); padding-top: 44px; box-shadow: 0 4px 16px rgba(0,0,0,.1); }
.vr-popular-badge { position: absolute; top: 0; left: 50%; transform: translate(-50%,-50%); color: #fff; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; padding: 4px 16px; border-radius: 50px; white-space: nowrap; font-family: var(--vr-font); }
.vr-plan-name { font-family: var(--vr-font); font-size: 1.2rem; font-weight: 700; color: #111; margin-bottom: 8px; }
.vr-plan-price { display: flex; align-items: baseline; gap: 4px; margin-bottom: 24px; }
.vr-price { font-size: 2.4rem; font-weight: 800; }
.vr-period { color: #888; font-size: .9rem; }
.vr-plan-features { list-style: none; margin: 0 0 24px; padding: 0; flex: 1; }
.vr-plan-features li { display: flex; align-items: flex-start; gap: 10px; padding: 7px 0; font-family: var(--vr-font); font-size: .9rem; color: #555; border-bottom: 1px solid #f5f5f5; }
.vr-plan-features li:last-child { border-bottom: none; }
.vr-check { font-size: 1rem; flex-shrink: 0; font-weight: 700; }
.vr-plan-btn { display: block; text-align: center; padding: 12px; border-radius: 6px; font-family: var(--vr-font); font-weight: 700; font-size: .9rem; text-decoration: none; transition: all .2s; margin-top: auto; }
.vr-plan-btn.outline { border: 2px solid var(--plan-color); color: var(--plan-color) !important; background: transparent; }
.vr-plan-btn.outline:hover { background: var(--plan-color); color: #fff !important; }
.vr-plan-btn.solid { background: var(--plan-color); color: #fff !important; box-shadow: 0 3px 10px rgba(0,0,0,.15); }
.vr-plan-btn.solid:hover { opacity: .88; }
.vr-mpa-parts { background: #fff; border: 1px solid rgba(71,0,122,.2); border-radius: 12px; padding: 32px; margin: 0 auto 32px; max-width: 960px; }
.vr-mpa-parts h4 { font-family: var(--vr-font); font-size: 1.1rem; font-weight: 700; margin-bottom: 24px; }
.vr-mpa-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
@media(max-width:600px){ .vr-mpa-grid { grid-template-columns: 1fr; } }
.vr-mpa-num { width: 32px; height: 32px; border-radius: 50%; color: #fff; font-size: 13px; font-weight: 800; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.vr-mpa-item h5 { font-family: var(--vr-font); font-size: .95rem; font-weight: 700; color: #111; margin-bottom: 6px; }
.vr-mpa-item p { font-family: var(--vr-font); font-size: .85rem; color: #666; line-height: 1.6; margin: 0; }
.vr-indicators { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 32px; }
.vr-indicator-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; background: #fff; border: 1px solid #ddd; border-radius: 6px; font-family: var(--vr-font); font-size: .85rem; font-weight: 600; color: #444; }
.vr-chip-dot { width: 7px; height: 7px; transform: rotate(45deg); display: inline-block; }

/* ============================================================
   FAQ Section
   ============================================================ */
.vr-faq-section { background: #f8f8f8; padding: 96px 0; border-top: 1px solid #e8e8e8; }
.vr-faq-list { max-width: 760px; margin: 0 auto 64px; display: flex; flex-direction: column; gap: 16px; }
.vr-faq-item { background: #fff; border: 1px solid #e4e4e4; border-radius: 12px; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,.05); transition: box-shadow .2s; }
.vr-faq-item:hover { box-shadow: 0 3px 12px rgba(0,0,0,.08); }
.vr-faq-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; background: none; border: none; cursor: pointer; font-family: var(--vr-font); font-size: 1rem; font-weight: 700; color: #111; text-align: left; }
.vr-q-label { color: var(--vr-crimson); font-size: 1.1rem; font-weight: 900; margin-right: 10px; flex-shrink: 0; }
.vr-faq-arrow { color: #aaa; transition: transform .25s; flex-shrink: 0; }
.vr-faq-item.open .vr-faq-arrow { transform: rotate(180deg); }
.vr-faq-a { max-height: 0; overflow: hidden; transition: max-height .3s ease, padding .3s ease; font-family: var(--vr-font); font-size: .95rem; color: #555; line-height: 1.75; padding: 0 24px; }
.vr-faq-item.open .vr-faq-a { max-height: 300px; padding: 0 24px 20px; border-top: 1px solid #f0f0f0; }
.vr-faq-cta { max-width: 640px; margin: 0 auto; background: #fff; border: 1px solid #e4e4e4; border-radius: 16px; padding: 48px 40px; text-align: center; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.vr-faq-cta-icon { font-size: 2.4rem; margin-bottom: 16px; }
.vr-faq-cta h3 { font-family: var(--vr-font); font-size: 1.4rem; font-weight: 700; color: #111; margin-bottom: 10px; }
.vr-faq-cta p { font-family: var(--vr-font); color: #666; font-size: .95rem; line-height: 1.7; max-width: 480px; margin: 0 auto 28px; }
.vr-faq-cta-btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }


/* ============================================================
   HERO SECTION
   ============================================================ */
.vr-hero-section {
  position: relative;
  background: #ffffff;
  padding: 80px 0 100px;
  overflow: hidden;
}
.vr-hero-bg-deco {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 55%;
  background: rgba(104,12,13,0.04);
  border-radius: 100% 0 0 100% / 50% 0 0 50%;
  transform: translateX(35%);
  pointer-events: none;
}
.vr-hero-container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
  position: relative;
  z-index: 1;
}
.vr-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

/* -- Left column -- */
.vr-hero-left {}
.vr-hero-eyebrow {
  display: block;
  font-family: var(--vr-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vr-crimson);
  margin-bottom: 16px;
}
.vr-hero-h1 {
  font-family: var(--vr-font);
  font-size: 52px;
  font-weight: 800;
  line-height: 1.1;
  color: #111111;
  margin: 0 0 24px 0;
}
.vr-hero-accent {
  color: var(--vr-crimson);
}
.vr-hero-desc {
  font-family: var(--vr-font);
  font-size: 17px;
  color: #555555;
  line-height: 1.75;
  margin: 0 0 36px 0;
  max-width: 520px;
}
.vr-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
}
.vr-btn-primary {
  display: inline-flex;
  align-items: center;
  background: var(--vr-crimson);
  color: #ffffff !important;
  padding: 14px 28px;
  border-radius: 6px;
  font-family: var(--vr-font);
  font-weight: 700;
  font-size: 16px;
  text-decoration: none !important;
  transition: opacity .2s, transform .15s;
  box-shadow: 0 4px 14px rgba(104,12,13,.25);
}
.vr-btn-primary:hover { opacity: .9; transform: translateY(-1px); }
.vr-hero-signin-btn {
  display: inline-flex;
  align-items: center;
  background: transparent;
  color: var(--vr-crimson) !important;
  border: 2px solid var(--vr-crimson);
  padding: 12px 28px;
  border-radius: 6px;
  font-family: var(--vr-font);
  font-weight: 700;
  font-size: 16px;
  text-decoration: none !important;
  transition: background .2s, color .2s;
}
.vr-hero-signin-btn:hover { background: var(--vr-crimson); color: #ffffff !important; }

/* -- Right column -- */
.vr-hero-right {}
.vr-hero-visual-wrap {
  position: relative;
}
.vr-hero-visual {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: linear-gradient(135deg, #47007a 0%, #680c0d 100%);
  box-shadow: 0 25px 60px rgba(0,0,0,.25);
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Decorative rings */
.vr-hero-deco-ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.12);
  pointer-events: none;
}
.vr-hero-ring1 { width: 80%; height: 80%; }
.vr-hero-ring2 { width: 60%; height: 60%; border-style: dashed; border-color: rgba(255,255,255,0.08); }
.vr-hero-ring3 { width: 40%; height: 40%; }
/* Visual content inside the box */
.vr-hero-visual-content {
  position: relative;
  z-index: 1;
  text-align: center;
  color: #ffffff;
}
.vr-hero-vis-label {
  font-family: var(--vr-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: rgba(255,255,255,0.6);
  margin-bottom: 28px;
}
.vr-hero-vis-stats {
  display: flex;
  gap: 32px;
  justify-content: center;
}
.vr-hero-vis-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.vr-hero-vis-num {
  font-family: var(--vr-font);
  font-size: 36px;
  font-weight: 800;
  line-height: 1;
  color: #ffffff;
}
.vr-hero-vis-text {
  font-family: var(--vr-font);
  font-size: 12px;
  font-weight: 500;
  color: rgba(255,255,255,0.7);
  margin-top: 4px;
}
/* Floating card */
.vr-hero-float-card {
  position: absolute;
  bottom: -24px;
  left: -24px;
  background: #ffffff;
  border: 1px solid #f3f4f6;
  border-radius: 12px;
  padding: 20px 24px;
  box-shadow: 0 20px 40px rgba(0,0,0,.14);
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 220px;
  z-index: 10;
}
.vr-hero-float-icon {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(104,12,13,0.06);
  border-radius: 50%;
}
.vr-hero-float-label {
  font-family: var(--vr-font);
  font-size: 12px;
  font-weight: 500;
  color: #6b7280;
  margin: 0 0 2px 0;
}
.vr-hero-float-count {
  font-family: var(--vr-font);
  font-size: 18px;
  font-weight: 700;
  color: var(--vr-crimson);
  margin: 0;
}

/* -- Responsive -- */
@media (max-width: 900px) {
  .vr-hero-grid { grid-template-columns: 1fr; gap: 48px; }
  .vr-hero-right { display: none; }
  .vr-hero-h1 { font-size: 38px; }
}


/* Horizontal button-align rule removed */


/* ============================================================
   My Account Page
============================================================ */

/* --- Sidebar nav --- */
.vr-account-nav {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.vr-account-nav-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px;
    border-radius: 8px;
    font-family: Raleway, sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #4b5563;
    text-decoration: none;
    transition: background .15s, color .15s;
}
.vr-account-nav-link:hover {
    background: #f3f4f6;
    color: #680c0d;
}
.vr-account-nav-link.active {
    background: #680c0d;
    color: #ffffff;
    font-weight: 600;
}
.vr-account-nav-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
.vr-account-nav-logout {
    margin-top: 16px;
    border-top: 1px solid #e5e7eb;
    padding-top: 16px;
    color: #9ca3af;
}
.vr-account-nav-logout:hover {
    color: #680c0d;
    background: #fef2f2;
}

/* --- Welcome banner --- */
.vr-account-welcome {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 28px 32px;
    margin-bottom: 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.vr-account-welcome-title {
    font-family: Raleway, sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #111827;
    margin: 0 0 6px 0;
}
.vr-account-welcome-desc {
    font-family: Raleway, sans-serif;
    font-size: 15px;
    color: #6b7280;
    margin: 0;
}

/* --- Subscription card --- */
.vr-account-sub-card {
    background: #ffffff;
    border: 2px solid #e5e7eb;
    border-radius: 12px;
    padding: 24px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
    margin-bottom: 20px;
    height: calc(100% - 20px);
    display: flex;
    flex-direction: column;
}
.vr-account-sub-badge {
    position: absolute;
    top: 0;
    right: 0;
    background: #680c0d;
    color: #fff;
    font-family: Raleway, sans-serif;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    padding: 4px 12px;
    border-radius: 0 10px 0 8px;
}
.vr-account-sub-product {
    font-family: Raleway, sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: .12em;
    margin: 0 0 4px 0;
}
.vr-account-sub-plan {
    font-family: Raleway, sans-serif;
    font-size: 26px;
    font-weight: 700;
    color: #111827;
    margin: 0 0 12px 0;
}
.vr-account-sub-billing {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: Raleway, sans-serif;
    font-size: 14px;
    color: #4b5563;
    margin-bottom: 16px;
}
.vr-account-sub-renewal {
    background: #f9fafb;
    border-radius: 8px;
    padding: 10px 14px;
    display: flex;
    justify-content: space-between;
    font-family: Raleway, sans-serif;
    font-size: 13px;
    color: #6b7280;
    margin-bottom: 20px;
}
.vr-account-sub-renewal strong {
    color: #111827;
    font-weight: 600;
}
.vr-account-sub-actions {
    display: flex;
    gap: 10px;
    margin-top: auto;
}
.vr-account-sub-btn-primary {
    flex: 1;
    text-align: center;
    background: #680c0d;
    color: #fff;
    font-family: Raleway, sans-serif;
    font-size: 13px;
    font-weight: 700;
    padding: 10px 16px;
    border-radius: 6px;
    text-decoration: none;
    transition: opacity .2s;
}
.vr-account-sub-btn-primary:hover { opacity: .88; color: #fff; }
.vr-account-sub-btn-secondary {
    padding: 10px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-family: Raleway, sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #374151;
    text-decoration: none;
    transition: background .15s;
}
.vr-account-sub-btn-secondary:hover { background: #f3f4f6; }

/* --- Profile card --- */
.vr-account-profile-card {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
    display: flex;
    flex-direction: column;
    height: calc(100% - 20px);
    margin-bottom: 20px;
}
.vr-account-profile-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: Raleway, sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #111827;
    margin: 0 0 16px 0;
    padding-bottom: 16px;
    border-bottom: 1px solid #f3f4f6;
}
.vr-account-profile-fields {
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex: 1;
}
.vr-account-profile-field {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.vr-account-profile-label {
    font-family: Raleway, sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: .1em;
}
.vr-account-profile-value {
    font-family: Raleway, sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: #111827;
}
.vr-account-profile-edit {
    font-family: Raleway, sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #680c0d;
    text-decoration: none;
    margin-top: 20px;
}
.vr-account-profile-edit:hover { text-decoration: underline; }

/* --- Upsell section --- */
.vr-account-upsell {
    background: #ffffff;
    border: 1px solid rgba(104,12,13,.1);
    border-radius: 12px;
    padding: 28px 32px;
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.vr-account-upsell-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 4px;
}
.vr-account-upsell-card {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-left: 4px solid #680c0d;
    border-radius: 8px;
    padding: 20px;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: box-shadow .2s;
}
.vr-account-upsell-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.1); }
.vr-account-upsell-card-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
}
.vr-account-upsell-card-title {
    font-family: Raleway, sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #111827;
    margin: 0;
    transition: color .15s;
}
.vr-account-upsell-card:hover .vr-account-upsell-card-title { color: #680c0d; }
.vr-account-upsell-card-arrow {
    background: #f9fafb;
    border-radius: 6px;
    padding: 6px;
    color: #9ca3af;
    flex-shrink: 0;
    transition: background .15s, color .15s;
}
.vr-account-upsell-card:hover .vr-account-upsell-card-arrow { background: #680c0d; color: #fff; }
.vr-account-upsell-card-desc {
    font-family: Raleway, sans-serif;
    font-size: 13px;
    color: #6b7280;
    margin: 0;
    line-height: 1.6;
}
.vr-account-upsell-card-cta {
    font-family: Raleway, sans-serif;
    font-size: 11px;
    font-weight: 700;
    color: #680c0d;
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-top: 4px;
}

/* --- Responsive --- */
@media (max-width: 768px) {
    .vr-account-upsell-grid { grid-template-columns: 1fr; }
}

/* Subscribe button: full width so all buttons are the same width */
.vr-product-panel .elementor-column .elementor-widget-button .elementor-button-wrapper,
.vr-product-panel .elementor-column .elementor-widget-button .elementor-button {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

/* 1. Normalize badge/spacer widget height (div:nth-child(1) in widget-wrap) */
.vr-product-panel .elementor-col-33 .elementor-widget-wrap > div:nth-child(1) .elementor-widget-container {
    min-height: 32px;
}
/* 2. Normalize plan name heading height (div:nth-child(2)) */
/*    gives "Diplomat Premium" same height as "Basic" so prices align too */
.vr-product-panel .elementor-col-33 .elementor-widget-wrap > div:nth-child(2) {
    min-height: 60px;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
}
/* Pricing cards: align titles/prices/buttons using CSS Grid fixed rows
   Row order: 1=badge  2=plan-name  3=price  4=features  5=button */
.vr-product-panel .elementor-col-33 .elementor-widget-wrap {
    display: grid !important;
    grid-template-rows: 36px auto auto 1fr auto !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
}
/* Badge row: allow visual overflow upward, lock to exactly 36px */
.vr-product-panel .elementor-col-33 .elementor-widget-wrap > div:nth-child(1) {
    overflow: visible !important;
    height: 36px !important;
    min-height: 0 !important;
}
/* Plan name: all start flush top of their row — grid row height is auto so they
   all get the same height (the tallest card drives the row height) */
.vr-product-panel .elementor-col-33 .elementor-widget-wrap > div:nth-child(2) {
    align-self: start !important;
}
/* Price heading: flush top */
.vr-product-panel .elementor-col-33 .elementor-widget-wrap > div:nth-child(3) {
    align-self: start !important;
}
/* Features: fill remaining space */
.vr-product-panel .elementor-col-33 .elementor-widget-wrap > div:nth-child(4) {
    align-self: stretch !important;
}
/* Tab selector: hover colour matches each tab's active/selected state */
.vr-tab-btn:not(.active) {
    background: #ffffff;
    color: #6b7280;
    border-color: #e5e7eb;
}
.vr-tab-btn[data-panel="political"]:not(.active):hover {
    border-color: #47007a;
    color: #47007a;
    background: rgba(71,0,122,0.05);
}
.vr-tab-btn[data-panel="economic"]:not(.active):hover,
.vr-tab-btn[data-panel="diplomatic"]:not(.active):hover {
    border-color: #680c0d;
    color: #680c0d;
    background: rgba(104,12,13,0.05);
}
/* 4th card (solo row) — revert grid alignment, use normal flex instead */
.vr-solo-card .elementor-widget-wrap {
    display: flex !important;
    grid-template-rows: unset !important;
    flex-direction: column !important;
    height: 100% !important;
}
.vr-solo-card .elementor-widget-wrap > div:nth-child(1),
.vr-solo-card .elementor-widget-wrap > div:nth-child(2),
.vr-solo-card .elementor-widget-wrap > div:nth-child(3),
.vr-solo-card .elementor-widget-wrap > div:nth-child(4) {
    height: unset !important;
    min-height: unset !important;
    align-self: unset !important;
}

/* ============================================================
   CHECKOUT PAGE
   2-col grid: billing form (2/3) | order summary (1/3)
   ============================================================ */

/* Hide Astra page title on checkout */
.woocommerce-checkout .entry-header,
.woocommerce-checkout .page-header { display: none !important; }

/* Hide WC collapsible login/coupon banners */
.woocommerce-checkout .woocommerce-info { display: none !important; }

/* Remove huge top margin from Elementor section 0 */
.woocommerce-checkout .elementor-section:first-child { padding-top: 32px !important; }

/* 2-column grid */
.vr-co-wrap {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 32px;
  align-items: start;
  width: 100%;
}
@media (max-width: 900px) {
  .vr-co-wrap { grid-template-columns: 1fr; }
}

/* Billing card */
.vr-co-billing {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 32px;
}

/* Order summary card */
.vr-co-summary {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 24px;
  position: sticky;
  top: 80px;
}

/* Column headings */
.vr-co-title {
  font-family: 'Raleway', sans-serif !important;
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  color: #111827 !important;
  border-bottom: 1px solid #f3f4f6 !important;
  padding-bottom: 14px !important;
  margin-bottom: 20px !important;
}

/* Login tip */
.vr-co-login-tip {
  background: #f9fafb;
  border: 1px solid #f3f4f6;
  border-radius: 6px;
  padding: 12px 16px;
  margin-bottom: 20px;
  font-size: 0.875rem;
  color: #4b5563;
  font-family: 'Raleway', sans-serif;
}
.vr-co-login-tip a { color: #680c0d; font-weight: 700; text-decoration: none; }
.vr-co-login-tip a:hover { text-decoration: underline; }

/* Form labels */
.woocommerce-checkout .form-row label {
  font-family: 'Raleway', sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  color: #374151;
  display: block;
  margin-bottom: 4px;
}
/* Form inputs */
.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  width: 100% !important;
  border: 1px solid #d1d5db !important;
  border-radius: 6px !important;
  padding: 8px 12px !important;
  font-family: 'Raleway', sans-serif !important;
  font-size: 0.875rem !important;
  color: #111827 !important;
  background: #fff !important;
  box-sizing: border-box !important;
  transition: border-color 0.15s !important;
}
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus {
  border-color: #680c0d !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(104,12,13,0.1) !important;
}
/* Side-by-side first/last name */
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  width: calc(50% - 8px) !important;
  float: left !important;
}
.woocommerce-checkout .form-row-last { margin-left: 16px !important; }

/* Order table */
.vr-co-summary table.shop_table {
  width: 100%;
  border-collapse: collapse;
  font-family: 'Raleway', sans-serif;
  font-size: 0.875rem;
  margin-bottom: 4px;
}
.vr-co-summary table.shop_table th,
.vr-co-summary table.shop_table td {
  padding: 8px 0;
  border-bottom: 1px solid #f3f4f6;
  color: #374151;
}
.vr-co-summary table.shop_table .order-total td,
.vr-co-summary table.shop_table .order-total th {
  font-weight: 700;
  font-size: 1rem;
  color: #680c0d;
  border-bottom: none;
  padding-top: 12px;
}
/* Payment section inside summary */
.vr-co-summary #payment { margin-top: 20px; background: none !important; border: none !important; padding: 0 !important; border-radius: 0 !important; }
.vr-co-summary #payment ul.payment_methods { border: 1px solid #e5e7eb; border-radius: 6px; padding: 12px; list-style: none; margin-bottom: 16px; background: #fff; }
.vr-co-summary #payment .place-order { padding: 0 !important; }
.vr-co-summary #payment #place_order {
  width: 100% !important;
  background: #680c0d !important;
  color: #fff !important;
  font-family: 'Raleway', sans-serif !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  padding: 14px !important;
  border: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  margin-top: 12px !important;
}
.vr-co-summary #payment #place_order:hover { opacity: 0.9 !important; }

/* WC error notices */
.woocommerce-checkout .woocommerce-error {
  background: #fef2f2;
  border-left: 4px solid #680c0d;
  border-radius: 6px;
  font-family: 'Raleway', sans-serif;
  font-size: 0.875rem;
  padding: 12px 16px;
  list-style: none;
  margin-bottom: 16px;
}

/* Hide WC default section headings — we use our own */
.vr-co-billing .woocommerce-billing-fields h3,
.vr-co-billing .woocommerce-additional-fields h3 {
  display: none !important;
}

/* Hide additional order notes field for virtual subscriptions */
.vr-co-billing .woocommerce-additional-fields {
  display: none !important;
}

/* Fix Astra page title spacing on checkout */
.woocommerce-checkout .entry-header { display: none !important; }
.woocommerce-checkout .ast-container > .entry-content { padding-top: 0 !important; }

/* WC error notices on checkout — minimal styling */
.woocommerce-checkout ul.woocommerce-error {
  background: #fef2f2;
  border-left: 3px solid #680c0d;
  border-radius: 6px;
  padding: 12px 16px;
  list-style: none;
  margin-bottom: 16px;
  font-family: 'Raleway', sans-serif;
  font-size: 0.875rem;
}
.woocommerce-checkout ul.woocommerce-error a {
  display: none !important;
}

/* Override WC/Astra defaults that constrain order_review width */
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
  float: none !important;
  width: auto !important;
  min-width: 0 !important;
}

/* Ensure grid children can shrink properly */
.vr-co-billing,
.vr-co-summary {
  min-width: 0 !important;
  max-width: none !important;
  width: auto !important;
  float: none !important;
}

/* Ensure the outer wrap takes full column width */
.vr-co-wrap {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Nuclear float fix — WC/Astra sets float:right on #order_review */
#order_review {
  float: none !important;
  width: auto !important;
  clear: none !important;
}
/* Also target by class combo for specificity */
.vr-co-wrap > .vr-co-summary {
  float: none !important;
  width: auto !important;
  align-self: start !important;
  justify-self: stretch !important;
}


/* ============================================================
   ORDER SUMMARY BOX — improved (appended override)
   ============================================================ */

/* --- Billing card --- */
.vr-co-billing {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 32px;
  min-width: 0 !important;
  width: auto !important;
  float: none !important;
}

/* --- Summary card --- */
.vr-co-summary {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 24px;
  position: sticky;
  top: 80px;
  min-width: 0 !important;
  width: auto !important;
  float: none !important;
}

/* Nuclear float fix */
#order_review,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
  float: none !important;
  width: auto !important;
  min-width: 0 !important;
  clear: none !important;
}
.vr-co-wrap > .vr-co-summary {
  float: none !important;
  width: auto !important;
  align-self: start !important;
  justify-self: stretch !important;
}

/* --- Order review table --- */
.vr-co-summary table.shop_table,
.vr-co-summary .woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  font-family: Raleway, sans-serif;
  font-size: 0.875rem;
  margin-bottom: 0;
}
/* Hide the WC table header row entirely (Product | Subtotal) */
.vr-co-summary table.shop_table thead { display: none !important; }

/* Item row: product name left, price right */
.vr-co-summary table.shop_table tbody .cart_item td {
  padding: 10px 0;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: middle;
  color: #111827;
}
.vr-co-summary table.shop_table tbody .cart_item td.product-name {
  font-weight: 600;
  font-size: 0.9375rem;
  padding-right: 12px;
}
.vr-co-summary table.shop_table tbody .cart_item td.product-total {
  text-align: right;
  white-space: nowrap;
  font-weight: 600;
  color: #374151;
}

/* Footer rows (coupons, tax, total) */
.vr-co-summary table.shop_table tfoot tr th,
.vr-co-summary table.shop_table tfoot tr td {
  padding: 8px 0;
  border-bottom: 1px solid #f3f4f6;
  font-size: 0.875rem;
  color: #6b7280;
}
.vr-co-summary table.shop_table tfoot tr td {
  text-align: right;
}
/* Order total row */
.vr-co-summary table.shop_table tfoot .order-total th,
.vr-co-summary table.shop_table tfoot .order-total td {
  font-weight: 700;
  font-size: 1.0625rem;
  color: #680c0d;
  border-bottom: none;
  padding-top: 14px;
  border-top: 2px solid #e5e7eb;
}

/* --- Divider before payment section --- */
.vr-co-summary #payment {
  margin-top: 20px;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* Payment method list */
.vr-co-summary #payment ul.payment_methods {
  list-style: none;
  margin: 0 0 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.vr-co-summary #payment ul.payment_methods li {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 12px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  transition: border-color 0.15s;
}
.vr-co-summary #payment ul.payment_methods li:has(input:checked) {
  border-color: #680c0d;
  background: #fff8f8;
}
.vr-co-summary #payment ul.payment_methods li label {
  font-family: Raleway, sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  color: #111827;
  cursor: pointer;
  margin: 0;
  display: block;
}
.vr-co-summary #payment ul.payment_methods li input[type="radio"] {
  margin-top: 2px;
  accent-color: #680c0d;
  flex-shrink: 0;
  width: 16px !important;
  height: 16px !important;
  border: none !important;
  padding: 0 !important;
}
/* Payment description (e.g. Stripe card fields) */
.vr-co-summary #payment .payment_box {
  margin-top: 10px;
  padding: 14px;
  background: #f9fafb;
  border-radius: 6px;
  border: 1px solid #e5e7eb;
  font-family: Raleway, sans-serif;
  font-size: 0.875rem;
  color: #374151;
}

/* Place Order button */
.vr-co-summary #payment .place-order { padding: 0 !important; }
.vr-co-summary #payment #place_order {
  width: 100% !important;
  background: #680c0d !important;
  color: #fff !important;
  font-family: Raleway, sans-serif !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  padding: 14px !important;
  border: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  margin-top: 16px !important;
  transition: opacity 0.2s !important;
  letter-spacing: 0.01em !important;
}
.vr-co-summary #payment #place_order:hover { opacity: 0.9 !important; }

/* WC error notices */
.woocommerce-checkout ul.woocommerce-error {
  background: #fef2f2;
  border-left: 3px solid #680c0d;
  border-radius: 6px;
  padding: 12px 16px;
  list-style: none;
  margin-bottom: 16px;
  font-family: Raleway, sans-serif;
  font-size: 0.875rem;
}
.woocommerce-checkout ul.woocommerce-error a { display: none !important; }

/* Side-by-side first/last name */
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  width: calc(50% - 8px) !important;
  float: left !important;
}
.woocommerce-checkout .form-row-last { margin-left: 16px !important; }

/* Login tip */
.vr-co-login-tip {
  background: #f9fafb;
  border: 1px solid #f3f4f6;
  border-radius: 6px;
  padding: 12px 16px;
  margin-bottom: 20px;
  font-size: 0.875rem;
  color: #4b5563;
  font-family: Raleway, sans-serif;
}
.vr-co-login-tip a { color: #680c0d; font-weight: 700; text-decoration: none; }
.vr-co-login-tip a:hover { text-decoration: underline; }


/* ---- Order summary box: padding/spacing fix ---- */
/* Reset browser default h2 top-margin inside the card */
.vr-co-summary .vr-co-title--summary {
  margin-top: 0 !important;
}
/* Tighten card padding: reduce top/bottom, keep side padding */
.vr-co-summary {
  padding: 20px 24px !important;
}
/* Remove any stray bottom margin from WC payment/place-order wrappers */
.vr-co-summary #payment,
.vr-co-summary #payment .place-order,
.vr-co-summary #payment ul.payment_methods {
  margin-bottom: 0 !important;
}
/* Ensure place-order wrapper has no extra padding */
.vr-co-summary #payment .place-order {
  padding-bottom: 0 !important;
}
/* Last item in table body — remove bottom border so it sits flush before the total */
.vr-co-summary table.shop_table tbody tr:last-child td {
  border-bottom: none !important;
}


/* ---- Checkout notices: errors must always be visible ---- */
/* (Only .woocommerce-info banners are hidden, not errors) */
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message {
  display: block !important;
}
.woocommerce-checkout ul.woocommerce-error {
  background: #fef2f2;
  border-left: 4px solid #680c0d;
  border-radius: 6px;
  padding: 12px 16px;
  list-style: none;
  margin: 0 0 16px;
  font-family: Raleway, sans-serif;
  font-size: 0.875rem;
  color: #7f1d1d;
}
.woocommerce-checkout ul.woocommerce-error li {
  padding: 2px 0;
}
.woocommerce-checkout ul.woocommerce-error a {
  display: none !important;
}


/* ---- Error notice: kill WC icon, fix li visibility ---- */
/* WC positions a ::before icon (WooCommerce font) at absolute left:1.5em which
   sits over the text when our padding overrides WC default 3.5em left-padding. */
.woocommerce-checkout ul.woocommerce-error::before,
.woocommerce-checkout ul.woocommerce-error::after {
  display: none !important;
  content: none !important;
}
.woocommerce-checkout ul.woocommerce-error {
  padding: 12px 16px !important;
  position: relative !important;
}
.woocommerce-checkout ul.woocommerce-error li {
  display: block !important;
  visibility: visible !important;
  color: #7f1d1d !important;
  font-size: 0.875rem !important;
  font-family: Raleway, sans-serif !important;
  padding: 3px 0 !important;
  margin: 0 !important;
  list-style: none !important;
}
.woocommerce-checkout ul.woocommerce-error li a { display: none !important; }
.woocommerce-notices-wrapper:empty { display: none !important; }

/* ---- VR custom error notice (replaces WC ul.woocommerce-error) ---- */
.vr-notice-error {
  display: block !important;
  background: #fef2f2 !important;
  border-left: 4px solid #680c0d !important;
  border-radius: 6px !important;
  padding: 12px 16px !important;
  margin: 0 0 16px !important;
  position: static !important;
}
.vr-notice-error::before,
.vr-notice-error::after {
  display: none !important;
  content: none !important;
}
.vr-notice-error__msg {
  display: block !important;
  color: #7f1d1d !important;
  font-family: Raleway, sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  margin: 4px 0 !important;
  padding: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
}


/* === Elementor Editor: show all product panels (JS does not run in editor) === */
.elementor-editor-active .vr-product-panel {
    display: block;
}


/* === Hero section: hide maroon pill on mobile === */
@media (max-width: 767px) {
    .elementor-element-hero_sec_001::before {
        display: none !important;
    }
}

/* === Sticky header === */
.xpro-theme-header{position:sticky;top:0;z-index:9999;}
/* === Sign In button - React outlined style === */
.vr-sign-in-btn{display:inline-block;padding:8px 20px!important;border:2px solid #680c0d!important;color:#680c0d!important;border-radius:4px!important;font-size:14px!important;font-weight:700!important;background:transparent!important;text-decoration:none!important;transition:background .2s ease,color .2s ease!important;line-height:1.4!important;}
.vr-sign-in-btn:hover{background:#680c0d!important;color:#ffffff!important;border-color:#680c0d!important;}

/* ============================================================
   Login Page
   ============================================================ */
.vr-login-page{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:48px 16px;background:#f9fafb;position:relative;overflow:hidden;}
.vr-login-bg-circle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:75%;height:75%;background:#680c0d;border-radius:50%;opacity:.05;filter:blur(60px);pointer-events:none;}
.vr-login-card{max-width:448px;width:100%;background:#fff;padding:40px;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.10);border:1px solid #f3f4f6;position:relative;z-index:1;}
.vr-login-header{display:flex;flex-direction:column;align-items:center;margin-bottom:32px;}
.vr-login-logo{height:48px;width:auto;object-fit:contain;margin-bottom:16px;}
.vr-login-title{font-size:30px!important;font-weight:700!important;color:#680c0d!important;margin:8px 0 4px!important;text-align:center!important;}
.vr-login-subtitle{font-size:14px;color:#6b7280;text-align:center;margin:0;}
.vr-login-form .vr-form-group{margin-bottom:16px;}
.vr-login-form .vr-input{width:100%!important;padding:12px!important;border:1px solid #d1d5db!important;border-radius:6px!important;font-size:14px!important;color:#111827!important;background:#fff!important;box-sizing:border-box!important;transition:border-color .15s,box-shadow .15s!important;}
.vr-login-form .vr-input:focus{outline:none!important;border-color:#680c0d!important;box-shadow:0 0 0 3px rgba(104,12,13,.1)!important;}
.vr-forgot-row{text-align:right;margin-bottom:24px;}
.vr-forgot-row a{font-size:14px;font-weight:500;color:#680c0d!important;text-decoration:none!important;}
.vr-forgot-row a:hover{opacity:.8;}
.vr-login-btn{width:100%!important;padding:12px 16px!important;background:#680c0d!important;color:#fff!important;border:none!important;border-radius:6px!important;font-size:14px!important;font-weight:600!important;cursor:pointer!important;transition:opacity .2s!important;display:block!important;text-align:center!important;margin-top:8px;}
.vr-login-btn:hover{opacity:.9!important;}
.vr-login-footer{text-align:center;margin-top:24px;}
.vr-login-footer p{font-size:14px;color:#6b7280;margin:0;}
.vr-login-footer a{font-weight:600;color:#680c0d!important;text-decoration:none!important;font-size:14px;}
.vr-login-footer a:hover{opacity:.8;}
/* hide WooCommerce default notices on login page */
.vr-login-page ~ .woocommerce-notices-wrapper{display:none;}
/* WooCommerce error messages inside login */
.vr-login-page .woocommerce-error,.vr-login-page .woocommerce-message{list-style:none;padding:12px;border-radius:6px;font-size:14px;margin-bottom:16px;}
.vr-login-page .woocommerce-error{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5;}
.vr-login-page .woocommerce-message{background:#f0fdf4;color:#166534;border:1px solid #86efac;}

/* Login page fixes */
.page-id-1335 .entry-title,
.page-id-1335 .entry-header {
    display: none !important;
}
.page-id-1335 .entry-content {
    padding: 0 !important;
    margin: 0 !important;
}
.vr-login-logo {
    height: 48px !important;
    width: auto !important;
    max-width: 180px !important;
    object-fit: contain !important;
    margin-bottom: 16px !important;
    display: block !important;
}


/* --- Lost/Reset password pages --- */
.woocommerce-lost-password .entry-title,
.woocommerce-lost-password .entry-header,
.woocommerce-edit-account .entry-title,
.woocommerce-edit-account .entry-header { display: none !important; }
.woocommerce-lost-password .entry-content,
.woocommerce-edit-account .entry-content { padding: 0 !important; margin: 0 !important; }
.vr-login-footer a { color: #680c0d; text-decoration: none; font-size: 14px; font-weight: 600; }
.vr-login-footer a:hover { text-decoration: underline; }

/* -------------------------------------------------------
   My Account endpoint content (orders, edit-account, etc.)
------------------------------------------------------- */
.vr-account-endpoint-content {
    padding: 0;
}
.vr-account-endpoint-content table.woocommerce-orders-table,
.vr-account-endpoint-content table.shop_table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    margin: 0 0 24px;
}
.vr-account-endpoint-content table.woocommerce-orders-table th,
.vr-account-endpoint-content table.shop_table th {
    background: #680c0d;
    color: #fff;
    padding: 12px 16px;
    text-align: left;
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .04em;
}
.vr-account-endpoint-content table.woocommerce-orders-table td,
.vr-account-endpoint-content table.shop_table td {
    padding: 12px 16px;
    border-bottom: 1px solid #f0e8e8;
    vertical-align: middle;
}
.vr-account-endpoint-content table.woocommerce-orders-table tr:hover td,
.vr-account-endpoint-content table.shop_table tr:hover td {
    background: #fdf8f8;
}
.vr-account-endpoint-content .woocommerce-orders-table__cell-order-actions a,
.vr-account-endpoint-content .button,
.vr-account-endpoint-content .wc-forward {
    display: inline-block;
    background: #680c0d;
    color: #fff;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    border: none;
    cursor: pointer;
}
.vr-account-endpoint-content .button:hover,
.vr-account-endpoint-content .wc-forward:hover { background: #4d0909; color: #fff; }
.vr-account-endpoint-content p.woocommerce-notice { font-size:14px; color:#6b7280; margin:0 0 16px; }

/* Edit Account form */
.vr-account-endpoint-content .woocommerce-EditAccountForm label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 6px;
}
.vr-account-endpoint-content .woocommerce-EditAccountForm input[type=text],
.vr-account-endpoint-content .woocommerce-EditAccountForm input[type=email],
.vr-account-endpoint-content .woocommerce-EditAccountForm input[type=password] {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid #e2d8d8;
    border-radius: 8px;
    font-size: 14px;
    margin-bottom: 16px;
    box-sizing: border-box;
    transition: border-color .2s;
}
.vr-account-endpoint-content .woocommerce-EditAccountForm input:focus {
    outline: none;
    border-color: #680c0d;
}
.vr-account-endpoint-content .woocommerce-EditAccountForm .form-row { margin-bottom: 8px; }
.vr-account-endpoint-content .woocommerce-EditAccountForm fieldset {
    border: 1.5px solid #e2d8d8;
    border-radius: 10px;
    padding: 20px;
    margin: 16px 0 24px;
}
.vr-account-endpoint-content .woocommerce-EditAccountForm fieldset legend {
    font-weight: 700;
    color: #680c0d;
    padding: 0 8px;
    font-size: 14px;
}

/* My Subscriptions page */
.vr-my-subscriptions-page { padding: 0; }
.vr-endpoint-title {
    font-size: 22px;
    font-weight: 700;
    color: #111827;
    margin: 0 0 24px;
}
.vr-sub-detail-card {
    border: 2px solid #680c0d;
    border-radius: 14px;
    padding: 28px;
    background: #fff;
    position: relative;
    max-width: 480px;
}
.vr-sub-billing {
    font-size: 14px;
    color: #374151;
    margin: 8px 0 0;
}

/* Political Basic card: match full width of other plan cards on mobile */
@media (max-width: 1024px) {
    .elementor-element-pol1378row > .elementor-container {
        max-width: 100% !important;
    }
}

/* Macro Economic Briefing: match card width of Macro-Media Political Analysis (33.33% each) */
.elementor-element-ae2957e8 > .elementor-container {
    justify-content: center;
}
.elementor-element-ae2957e8 > .elementor-container > .elementor-column {
    width: 33.333% !important;
    max-width: 33.333% !important;
    flex: 0 0 33.333% !important;
}

/* Macro Economic Briefing: grid alignment matching political section pattern */
.elementor-element-ae2957e8 .elementor-col-50 .elementor-widget-wrap {
    display: grid !important;
    grid-template-rows: 36px auto auto 1fr auto !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
    height: 100%;
}
.elementor-element-ae2957e8 .elementor-col-50 .elementor-widget-wrap > div:nth-child(1) {
    overflow: visible !important;
    height: 36px !important;
    min-height: 0px !important;
}
.elementor-element-ae2957e8 .elementor-col-50 .elementor-widget-wrap > div:nth-child(1) .elementor-widget-container {
    min-height: 32px;
}
.elementor-element-ae2957e8 .elementor-col-50 .elementor-widget-wrap > div:nth-child(2) {
    min-height: 60px;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-self: start !important;
}
.elementor-element-ae2957e8 .elementor-col-50 .elementor-widget-wrap > div:nth-child(3) {
    align-self: start !important;
}
.elementor-element-ae2957e8 .elementor-col-50 .elementor-widget-wrap > div:nth-child(4) {
    align-self: stretch !important;
}

/* MPA: stack 3 plan cards vertically on mobile/tablet */
@media (max-width: 1024px) {
    .elementor-element-46f0c967 > .elementor-container > .elementor-column {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }
    /* Reset grid height so stacked cards are auto-height */
    .elementor-element-46f0c967 .elementor-col-33 .elementor-widget-wrap {
        height: auto !important;
    }
}

/* Economic Briefing: stack 2 plan cards vertically on mobile/tablet */
@media (max-width: 1024px) {
    .elementor-element-ae2957e8 > .elementor-container > .elementor-column {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }
    .elementor-element-ae2957e8 .elementor-col-50 .elementor-widget-wrap {
        height: auto !important;
    }
}

/* MPA "delivered in three parts" box: single column on mobile */
@media (max-width: 768px) {
    .elementor-element-fa3e8c76 [style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    /* Reduce outer box padding on mobile */
    .elementor-element-fa3e8c76 .elementor-widget-container > div {
        padding: 20px !important;
    }
}

/* Checkout: hide "Secure Checkout" heading + subtitle on order-received page */
body.woocommerce-order-received .elementor-element-0e578115 {
    display: none !important;
}

/* ── Billing & Invoices (WooCommerce orders table) ── */
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-number a,
.woocommerce-orders-table td a {
    color: #680c0d;
    text-decoration: none;
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-date,
.woocommerce-orders-table .woocommerce-orders-table__cell-order-date a {
    color: #374151;
}
.woocommerce-orders-table .woocommerce-orders-table__cell-order-status mark,
.woocommerce-orders-table .woocommerce-orders-table__cell-order-status {
    color: #374151 !important;
    background: transparent !important;
}
.woocommerce-orders-table .woocommerce-orders-table__cell-order-status mark.processing,
.woocommerce-orders-table .woocommerce-orders-table__cell-order-status mark.pending {
    color: #374151 !important;
}
.woocommerce-orders-table .woocommerce-orders-table__cell-order-total {
    color: #374151;
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-total a,
.woocommerce-MyAccount-orders td {
    color: #374151;
}

/* WooCommerce message/info box: replace blue top border & icon */
.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info {
    border-top-color: #680c0d !important;
}
.woocommerce-account .woocommerce-message::before,
.woocommerce-account .woocommerce-info::before {
    color: #680c0d !important;
}
/* Orders table: fix status badge colours */
.woocommerce-orders-table mark.order-status {
    background: transparent !important;
    color: #374151 !important;
}
.woocommerce-orders-table mark.order-status.processing > span,
.woocommerce-orders-table mark.order-status.pending > span,
.woocommerce-orders-table mark.order-status.on-hold > span,
.woocommerce-orders-table mark.order-status.cancelled > span,
.woocommerce-orders-table mark.order-status.completed > span {
    color: #374151 !important;
}

/* Orders table: fix all blue text — override Astra link colour */
.woocommerce-MyAccount-orders.shop_table td,
.woocommerce-MyAccount-orders.shop_table td a,
.woocommerce-MyAccount-orders.shop_table td mark,
.woocommerce-MyAccount-orders.shop_table td mark span,
.woocommerce-MyAccount-orders.shop_table td bdi {
    color: #374151 !important;
}
/* Order number: show as readable maroon link (no maroon bg override) */
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-number a {
    color: #680c0d !important;
    font-weight: 600;
}
/* Remove any unintended background on the order number cell */
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-number {
    background: transparent !important;
}

/* Hide Astra product thumbnail in orders table order-number cell */
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-number .ast-woo-order-thumbnail {
    display: none !important;
}

/* Order detail page: fix blue text in order summary line and product row */
.woocommerce-account .woocommerce-order-details p,
.woocommerce-account .woocommerce-order-details p a,
.woocommerce-account .woocommerce-order-details p time,
.woocommerce-account .woocommerce-order-details p mark,
.woocommerce-account .entry-content > p,
.woocommerce-account .woocommerce > p,
.woocommerce-account .woocommerce > p a,
.woocommerce-account .woocommerce > p time,
.woocommerce-account .woocommerce > p mark {
    color: #374151 !important;
}
/* Product name link in order detail table */
.woocommerce-account .woocommerce-table--order-details td a,
.woocommerce-account .woocommerce-table--order-details td {
    color: #374151 !important;
}

/* Order detail tfoot rows (Subtotal / VAT / Total / Actions): remove maroon bg */
.woocommerce-table--order-details tfoot tr th,
.woocommerce-table--order-details tfoot tr td,
.woocommerce-account .woocommerce-table--order-details tfoot tr th,
.woocommerce-account .woocommerce-table--order-details tfoot tr td {
    background: #f9fafb !important;
    color: #374151 !important;
}
.woocommerce-table--order-details tfoot tr th {
    font-weight: 600;
    color: #111827 !important;
}

/* Pay button in order detail: keep text white */
.woocommerce-account .woocommerce-table--order-details .button,
.woocommerce-account .woocommerce-table--order-details a.button {
    color: #fff !important;
}

/* ===== Billing & Invoices: redesigned action buttons ===== */
.woocommerce-MyAccount-orders.shop_table td.woocommerce-orders-table__cell-order-actions {
    text-align: right;
    white-space: nowrap;
}
.woocommerce-MyAccount-orders.shop_table td .button,
.woocommerce-MyAccount-orders.shop_table td a.button {
    display: inline-block;
    margin: 3px 0 3px 6px;
    padding: 5px 12px;
    border-radius: 5px;
    font-family: Raleway, sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: .2px;
    text-decoration: none;
    border: 2px solid #680c0d;
    background: #680c0d;
    color: #fff !important;
    transition: background .2s, color .2s, box-shadow .2s;
    box-shadow: none;
}
.woocommerce-MyAccount-orders.shop_table td a.button:hover {
    background: #4d0809;
    border-color: #4d0809;
    color: #fff !important;
}
/* Secondary (View) button: plain text link, not boxed */
.woocommerce-MyAccount-orders.shop_table td a.button.view,
.woocommerce-MyAccount-orders.shop_table td a.button.view:hover {
    background: transparent !important;
    border: none !important;
    color: #680c0d !important;
    padding: 4px 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-weight: 600 !important;
}

/* Subscription/order totals table: keep tfoot (Subtotal/VAT/Total) light, header stays maroon */
.vr-account-endpoint-content table.shop_table tfoot th,
.vr-account-endpoint-content table.shop_table tfoot td {
    background: #f9fafb;
    color: #374151;
}
.vr-account-endpoint-content table.shop_table tfoot th {
    color: #111827;
    font-weight: 600;
}

/* My Subscriptions cards - responsive */
@media (max-width: 600px) {
    .vr-sub-detail-card { padding: 20px 16px; max-width: 100%; }
    .vr-sub-detail-card h3 { padding-right: 84px; font-size: 17px; line-height: 1.3; }
    .vr-endpoint-title { font-size: 19px; }
    .vr-sub-billing { font-size: 13px; }
    .vr-my-sub-actions { flex-direction: column; align-items: stretch; gap: 10px; }
    .vr-my-sub-actions .vr-my-sub-btn-billing,
    .vr-my-sub-actions .vr-my-sub-btn-cancel { display: block; width: 100%; text-align: center; box-sizing: border-box; }
}

/* Orders pagination (Previous/Next): plain text links, not boxed buttons */
.vr-account-endpoint-content .woocommerce-pagination a,
.vr-account-endpoint-content .woocommerce-Pagination a,
.woocommerce-account .woocommerce-pagination a.button,
.woocommerce-account .woocommerce-pagination a.woocommerce-button {
    background: transparent !important;
    color: #680c0d !important;
    border: none !important;
    padding: 4px 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-weight: 600 !important;
    text-decoration: underline;
    display: inline-block;
}
.vr-account-endpoint-content .woocommerce-pagination .woocommerce-button--next,
.woocommerce-account .woocommerce-pagination .woocommerce-Button--next { margin-left: 18px; }
.vr-account-endpoint-content .woocommerce-pagination a:hover,
.woocommerce-account .woocommerce-pagination a:hover { color: #4d0809 !important; text-decoration: underline; }

/* View buttons across account pages (orders, view-order, related subs): plain text link */
.vr-account-endpoint-content a.button.view,
.vr-account-endpoint-content a.button.view:hover,
.woocommerce-account a.button.view,
.woocommerce-account a.button.view:hover {
    background: transparent !important;
    border: none !important;
    color: #680c0d !important;
    padding: 4px 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-weight: 600 !important;
}

/* Orders cancel action: plain red text link, not a boxed button */
.woocommerce-MyAccount-orders.shop_table td a.button.cancel,
.woocommerce-account .woocommerce-orders-table a.button.cancel,
.vr-account-endpoint-content a.button.cancel {
    background: transparent !important;
    border: none !important;
    color: #b91c1c !important;
    padding: 4px 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-weight: 600 !important;
}

/* Order details Actions row: vertically align Pay button with Cancel link + spacing */
.woocommerce-account .order-actions-button,
.woocommerce-table--order-details .order-actions-button { vertical-align: middle !important; }
.woocommerce-account a.button.cancel.order-actions-button,
.woocommerce-table--order-details a.button.cancel.order-actions-button { margin-left: 18px !important; }

/* ===== Order-Pay page (Pay for order) clean layout ===== */
body.woocommerce-order-pay .woocommerce { max-width: 680px; margin-left: auto; margin-right: auto; }
body.woocommerce-order-pay form#order_review { width: 100%; }
body.woocommerce-order-pay table.shop_table { width:100%; border:1px solid #ece2e2; border-radius:10px; border-collapse:separate; border-spacing:0; overflow:hidden; margin-bottom:24px; }
body.woocommerce-order-pay table.shop_table thead th { background:#680c0d; color:#fff; text-align:left; font-weight:600; font-size:13px; letter-spacing:.03em; padding:12px 16px; }
body.woocommerce-order-pay table.shop_table td, body.woocommerce-order-pay table.shop_table tfoot th { padding:12px 16px; border-top:1px solid #f0e8e8; font-size:14px; color:#374151; }
body.woocommerce-order-pay table.shop_table tfoot th, body.woocommerce-order-pay table.shop_table tfoot td { background:#f9fafb; color:#374151; }
body.woocommerce-order-pay table.shop_table tfoot tr:last-child th, body.woocommerce-order-pay table.shop_table tfoot tr:last-child td { font-weight:700; color:#111827; }
body.woocommerce-order-pay #payment { background:#fff; border:1px solid #ece2e2; border-radius:10px; padding:22px 24px; }
body.woocommerce-order-pay #payment ul.wc_payment_methods { margin:0 0 14px; padding:0; border:none; list-style:none; }
body.woocommerce-order-pay #payment .form-row.place-order { margin-bottom:0; padding:0; }
body.woocommerce-order-pay #place_order { width:100%; padding:14px 24px; font-size:15px; font-weight:700; border-radius:8px; background:#680c0d; border:none; }
body.woocommerce-order-pay #place_order:hover { background:#4d0809; }

/* Order-pay: force rounded corners over theme defaults */
body.woocommerce-order-pay table.shop_table { border-radius:10px !important; overflow:hidden; }
body.woocommerce-order-pay #payment { border-radius:10px !important; }

/* FrontPage card: structurally mirror the Silver pricing card at all breakpoints */
.elementor-element-pol1378row { padding-left: 32px !important; padding-right: 32px !important; }
.elementor-element-pol1378row > .elementor-container { width: 100% !important; max-width: 1140px !important; margin-left: auto !important; margin-right: auto !important; justify-content: center !important; }
.elementor-element-pol1378col { width: 33.333% !important; max-width: none !important; flex: 0 1 auto !important; }
@media (max-width: 1024px) { .elementor-element-pol1378col { width: 100% !important; max-width: none !important; flex: 0 1 auto !important; } }
.elementor-element-pol1378col > .elementor-widget-wrap.elementor-element-populated { margin-left: 8px !important; margin-right: 8px !important; padding: 28px !important; }

/* Checkout cart-error "Return to home": plain text link, not a boxed button */
body.woocommerce-checkout a.button.wc-backward,
body.woocommerce-page a.button.wc-backward {
    background: transparent !important;
    border: none !important;
    color: #680c0d !important;
    padding: 4px 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-weight: 600 !important;
    text-decoration: underline;
}

/* Anti-FOUC belt-and-suspenders: keep Xpro nav hamburger/close icons hidden until header is ready */
html:not(.vr-header-ready) .xpro-elementor-horizontal-menu-toggler-wrapper,
html:not(.vr-header-ready) .xpro-elementor-horizontal-menu-toggler,
html:not(.vr-header-ready) .xpro-elementor-horizontal-menu-close { visibility: hidden !important; }

/* Account icon: keep the hover fill/colour while the dropdown is open */
.vr-account-wrap.is-open .vr-account-trigger { background: rgba(104,12,13,.06); }
.vr-account-wrap.is-open .vr-person-icon { color: var(--vr-crimson, #680c0d); }

/* Account icon focus reset: don't keep the fill after closing (match hover only) */
.vr-account-wrap:not(.is-open) .vr-account-trigger:focus:not(:hover) { background: none; }

/* Checkboxes & radios: maroon checked state instead of browser blue */
input[type="checkbox"], input[type="radio"] { accent-color: #680c0d; }

/* ===== Custom site footer (dark charcoal + maroon accents) ===== */
#colophon, footer.site-footer:not(.vr-site-footer), .ast-small-footer { display:none !important; }
.vr-site-footer { background:#111827; color:#9ca3af; font-family:Raleway,sans-serif; border-top:4px solid #b91c1c; }
.vr-footer-inner { max-width:1140px; margin:0 auto; padding:68px 24px 52px; display:grid; grid-template-columns:1.7fr 1fr 1.35fr 1.4fr; gap:56px; }
.vr-footer-logo { height:46px; width:auto; margin:0 0 22px; filter:brightness(0) invert(1); opacity:.95; }
.vr-footer-desc { font-size:14px; line-height:1.7; color:#9ca3af; margin:0; max-width:340px; }
.vr-footer-heading { color:#fff; font-size:14px; font-weight:700; letter-spacing:.04em; margin:0 0 16px; padding-bottom:0; position:relative; }
.vr-footer-heading:after { content:none; }
.vr-footer-links { list-style:none; margin:0; padding:0; }
.vr-footer-links li { margin:0 0 14px; }
.vr-footer-links a { color:#cbd5e1; text-decoration:none; font-size:14px; transition:color .15s ease, padding-left .15s ease; }
.vr-footer-links a:hover { color:#fff; padding-left:4px; }
.vr-footer-addr { font-size:14px; line-height:1.7; color:#9ca3af; margin:0 0 14px; }
.vr-footer-cline { font-size:14px; margin:0 0 8px; color:#9ca3af; }
.vr-footer-cline span { color:#6b7280; }
.vr-footer-cline a { color:#cbd5e1; text-decoration:none; word-break:break-word; }
.vr-footer-cline a:hover { color:#fff; }
.vr-footer-bottom { border-top:1px solid #1f2937; }
.vr-footer-bottom-inner { max-width:1140px; margin:0 auto; padding:22px 24px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; font-size:13px; color:#6b7280; }
.vr-footer-bottom-links a { color:#9ca3af; text-decoration:none; margin-left:18px; font-size:13px; }
.vr-footer-bottom-links a:hover { color:#fff; }
@media (max-width:900px){ .vr-footer-inner { grid-template-columns:1fr 1fr; gap:32px; } }
@media (max-width:560px){ .vr-footer-inner { grid-template-columns:1fr; } .vr-footer-bottom-inner { flex-direction:column; align-items:flex-start; } .vr-footer-bottom-links a { margin-left:0; margin-right:18px; } }

/* contact page hide title */
.page-id-1602 .ast-single-entry-banner, .page-id-1602 header.entry-header, .page-id-1602 .entry-header, .page-id-1602 .ast-archive-description { display:none !important; }

/* View-subscription Actions row: tidy "Renew now" + "Cancel" */
.woocommerce-account a.button.subscription_renewal_early,
.vr-account-endpoint-content a.button.subscription_renewal_early {
    display:inline-block; vertical-align:middle;
    background:#680c0d !important; color:#fff !important;
    padding:9px 20px !important; border:none !important; border-radius:6px !important;
    font-size:13px !important; font-weight:700 !important; line-height:1.4 !important;
    box-shadow:none !important; text-decoration:none !important; margin:4px 0 4px 16px !important;
}
.woocommerce-account a.button.subscription_renewal_early:hover,
.vr-account-endpoint-content a.button.subscription_renewal_early:hover { background:#4d0809 !important; color:#fff !important; }
.woocommerce-account a.button.cancel, .vr-account-endpoint-content a.button.cancel { display:inline-block; vertical-align:middle; margin:4px 0 !important; }
.woocommerce-account a.button.view, .vr-account-endpoint-content a.button.view { vertical-align:middle; }
.woocommerce-account table.shop_table td, .vr-account-endpoint-content table.shop_table td { vertical-align:middle; }

/* Account endpoint section headings (Related subscriptions/orders, totals, etc.) */
.vr-account-endpoint-content h2:not(.vr-endpoint-title),
.vr-account-endpoint-content h3,
.woocommerce-account .woocommerce-order-details__title,
.woocommerce-account .woocommerce-column__title {
    font-size: 19px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: #111827;
    margin: 30px 0 14px !important;
}
