/*
Theme Name: NPP Theme
Theme URI: https://nationalprintingpress.com
Description: Premium child theme for National Printing Press — Gold & Black design built for Elementor Pro + WooCommerce
Author: Azmat Wasim
Template: hello-elementor
Version: 1.0.0
Text Domain: npp-theme
*/

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&family=Lato:wght@300;400;700&display=swap');

:root {
  --npp-gold:       #C9A84C;
  --npp-gold-light: #E2C47A;
  --npp-gold-dark:  #9A7A2E;
  --npp-black:      #0D0D0D;
  --npp-dark:       #1A1A1A;
  --npp-white:      #FFFFFF;
  --npp-gray:       #F5F5F5;
  --npp-text:       #333333;
  --npp-shadow:     0 8px 32px rgba(0,0,0,0.12);
  --npp-shadow-gold:0 4px 20px rgba(201,168,76,0.25);
}

*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: 'Lato', sans-serif;
  color: var(--npp-text);
  background: var(--npp-white);
  line-height: 1.7;
}

h1,h2,h3,h4,h5,h6 {
  font-family: 'Playfair Display', serif;
  color: var(--npp-black);
  line-height: 1.3;
}

a { color: var(--npp-gold); text-decoration: none; transition: color .3s; }
a:hover { color: var(--npp-gold-dark); }
img { max-width: 100%; height: auto; }

/* ── HEADER ── */
header.elementor-location-header,
.site-header {
  background: var(--npp-black) !important;
  border-bottom: 2px solid var(--npp-gold);
  position: sticky; top: 0; z-index: 9999;
  box-shadow: 0 2px 20px rgba(0,0,0,.5);
  transition: box-shadow .3s;
}
header.npp-scrolled { box-shadow: 0 4px 30px rgba(0,0,0,.8) !important; }

/* Nav links */
.elementor-nav-menu .elementor-item {
  color: #fff !important;
  font-family: 'Lato', sans-serif;
  font-weight: 700; font-size: 13px;
  letter-spacing: 1.2px; text-transform: uppercase;
  padding: 10px 14px !important;
  transition: color .3s;
}
.elementor-nav-menu .elementor-item:hover,
.elementor-nav-menu .elementor-item.elementor-item-active {
  color: var(--npp-gold) !important;
}

/* ── BUTTONS ── */
.elementor-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  font-family: 'Lato', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  border-radius: 8px !important;
  transition: all .3s !important;
  cursor: pointer !important;
}
.elementor-button-primary,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: var(--npp-gold) !important;
  color: var(--npp-black) !important;
  border: 2px solid var(--npp-gold) !important;
  box-shadow: var(--npp-shadow-gold) !important;
}
.elementor-button-primary:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
  background: var(--npp-gold-dark) !important;
  border-color: var(--npp-gold-dark) !important;
  transform: translateY(-2px) !important;
}

/* ── WOOCOMMERCE SHOP ── */
.woocommerce ul.products li.product {
  border-radius: 12px; overflow: hidden;
  box-shadow: var(--npp-shadow);
  transition: all .4s; background: #fff;
  border: 1px solid #eee;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,.15);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Playfair Display', serif !important;
  font-size: 17px !important; font-weight: 600;
  color: var(--npp-black); padding: 14px 18px 4px;
}
.woocommerce ul.products li.product .price {
  color: var(--npp-gold) !important;
  font-size: 19px !important; font-weight: 700 !important;
  padding: 0 18px;
}
.woocommerce ul.products li.product a.button {
  background: var(--npp-gold) !important;
  color: var(--npp-black) !important;
  font-weight: 700 !important; text-transform: uppercase !important;
  letter-spacing: 1px !important; border-radius: 6px !important;
  margin: 12px 18px 18px !important; display: block !important;
  text-align: center !important; padding: 11px !important;
}
.woocommerce ul.products li.product a.button:hover {
  background: var(--npp-gold-dark) !important;
  transform: translateY(-1px) !important;
}

/* Cart / Checkout */
.woocommerce .cart_totals, .woocommerce-checkout #order_review {
  background: var(--npp-gray); border-radius: 12px; padding: 30px;
}
.woocommerce #payment #place_order {
  background: var(--npp-gold) !important; color: var(--npp-black) !important;
  font-weight: 700 !important; font-size: 16px !important;
  letter-spacing: 1px !important; text-transform: uppercase !important;
  padding: 16px 40px !important; border-radius: 8px !important; width: 100% !important;
}

/* ── FOOTER ── */
footer.elementor-location-footer, .site-footer {
  background: var(--npp-black) !important;
  border-top: 2px solid var(--npp-gold);
}

/* ── WHATSAPP FLOAT ── */
.npp-wa-float {
  position: fixed; bottom: 28px; right: 28px;
  width: 58px; height: 58px; background: #25D366;
  color: #fff !important; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px; z-index: 9999;
  box-shadow: 0 4px 20px rgba(37,211,102,.5);
  transition: all .3s; animation: wa-pulse 2.5s infinite;
}
.npp-wa-float:hover { transform: scale(1.12); background: #128C7E; }
@keyframes wa-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(37,211,102,.5); }
  70%  { box-shadow: 0 0 0 14px rgba(37,211,102,0); }
  100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); }
}

/* ── BACK TO TOP ── */
.npp-backtop {
  position: fixed; bottom: 96px; right: 28px;
  width: 42px; height: 42px; background: var(--npp-gold);
  color: #000 !important; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; z-index: 9998;
  opacity: 0; visibility: hidden; transition: all .3s;
  box-shadow: 0 4px 16px rgba(201,168,76,.4);
}
.npp-backtop.visible { opacity: 1; visibility: visible; }
.npp-backtop:hover { background: var(--npp-gold-dark); transform: translateY(-3px); }

/* ── SCROLL REVEAL ── */
.npp-reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s, transform .7s; }
.npp-reveal.in { opacity: 1; transform: translateY(0); }

/* ── RESPONSIVE ── */
@media (max-width: 768px) {
  .elementor-col-50, .elementor-col-33, .elementor-col-25 {
    width: 100% !important;
  }
}
