/*
Theme Name: Sanchit Enterprises Pro
Theme URI: https://sanchitenterprises.in
Author: Sanchit Enterprises
Description: Professional WordPress eCommerce theme with full Customizer support. Works with WooCommerce, Elementor, and all page builders. Everything is editable from Appearance → Customize — no coding needed! Perfect for any business.
Version: 2.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
WC requires at least: 7.0
WC tested up to: 9.0
License: GPL v2
Text Domain: sanchit-pro
Tags: e-commerce, elementor, woocommerce, custom-colors, custom-logo, full-width-template, theme-options
*/

/* ── Design Tokens (colors overridden by Customizer via inline CSS) ── */
:root {
  --sp-blue:    #1565C0;
  --sp-sky:     #1E88E5;
  --sp-green:   #00A550;
  --sp-orange:  #F57C00;
  --sp-ink:     #0D1B2A;
  --sp-muted:   #5C7080;
  --sp-off:     #F4F8FF;
  --sp-border:  #DDE8F8;
  --sp-white:   #ffffff;
  --sp-gold:    #F59E0B;
  --sp-red:     #E53935;
  --sp-radius:  12px;
  --sp-shadow:  0 4px 24px rgba(21,101,192,.10);
  --sp-max:     1200px;
}

/* ── Reset ── */
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  color: var(--sp-ink);
  background: #fff;
  overflow-x: hidden;
  line-height: 1.65;
}
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }

/* ── Container ── */
.sp-container { max-width: var(--sp-max); margin: 0 auto; padding: 0 clamp(16px,4vw,32px); }
.sp-section    { padding: clamp(48px,7vw,80px) 0; }
.sp-section-alt { background: var(--sp-off); }

/* ── Typography ── */
h1,h2,h3,h4,h5,h6 { line-height: 1.15; font-weight: 800; color: var(--sp-ink); }
.sp-sec-label { display: inline-block; background: #E8F1FF; color: var(--sp-blue); padding: 5px 16px; border-radius: 30px; font-size: .78em; font-weight: 700; margin-bottom: 10px; letter-spacing: .3px; }
.sp-sec-title { font-size: clamp(1.5em,3.5vw,2.3em); margin-bottom: 10px; }
.sp-sec-title em.accent { font-style: normal; color: var(--sp-blue); }
.sp-sec-sub   { color: var(--sp-muted); font-size: clamp(.88em,1.1vw,1em); }
.sp-sec-head  { margin-bottom: clamp(24px,3.5vw,36px); }
.sp-center    { text-align: center; }
em.accent     { font-style: normal; color: var(--sp-blue); }

/* ── Empty State (admin hints) ── */
.sp-empty-state { text-align: center; color: var(--sp-muted); padding: 40px 0; }
.sp-empty-state a { color: var(--sp-blue); font-weight: 700; }

/* ── Buttons ── */
.sp-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: clamp(12px,1.5vw,14px) clamp(20px,2.5vw,28px);
  border-radius: var(--sp-radius); font-weight: 800;
  font-size: clamp(.86em,1.05vw,.96em); cursor: pointer;
  border: 2px solid transparent; transition: all .2s;
  text-decoration: none; font-family: inherit;
}
.sp-btn-blue   { background: var(--sp-blue);  color: #fff; }
.sp-btn-blue:hover { background: #0d47a1; transform: translateY(-2px); }
.sp-btn-white  { background: #fff; color: var(--sp-blue); border-color: #fff; }
.sp-btn-white:hover { transform: translateY(-2px); }
.sp-btn-green  { background: #25D366; color: #fff; }
.sp-btn-green:hover { background: #1da851; transform: translateY(-2px); }
.sp-btn-outline { background: transparent; color: var(--sp-blue); border-color: var(--sp-blue); }
.sp-btn-outline:hover { background: #E8F1FF; }

/* ── Announcement Bar ── */
.sp-ann-bar {
  background: linear-gradient(90deg,var(--sp-blue),var(--sp-sky));
  color: #fff; padding: 9px 20px;
  display: flex; align-items: center; justify-content: center;
  gap: 16px; font-size: .82em; font-weight: 700;
  text-align: center; flex-wrap: wrap; position: relative;
}
.sp-ann-bar a { color: #FFD700; }
.sp-ann-close {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  background: none; border: none; color: rgba(255,255,255,.7);
  cursor: pointer; font-size: 1.1em; line-height: 1;
}

/* ── Header ── */
.sp-header {
  background: #fff; border-bottom: 1px solid var(--sp-border);
  position: sticky; top: 0; z-index: 1000;
  box-shadow: 0 2px 12px rgba(21,101,192,.08);
}
.sp-header.scrolled { box-shadow: 0 4px 20px rgba(21,101,192,.12); }
.sp-header-inner {
  display: flex; align-items: center; gap: 16px;
  padding: 12px clamp(16px,4vw,32px); max-width: var(--sp-max); margin: 0 auto;
}
.sp-logo { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.sp-logo-icon { width: 44px; height: 44px; border-radius: 10px; background: linear-gradient(135deg,var(--sp-blue),var(--sp-sky)); display: flex; align-items: center; justify-content: center; font-size: 1.4em; color: #fff; }
.sp-logo-name { font-size: 1em; font-weight: 800; color: var(--sp-ink); line-height: 1.1; }
.sp-logo-sub  { font-size: .72em; color: var(--sp-muted); font-weight: 400; }
.sp-header-search { flex: 1; max-width: 420px; position: relative; }
.sp-header-search input { width: 100%; padding: 10px 16px 10px 42px; border: 1.5px solid var(--sp-border); border-radius: 30px; font-size: .88em; font-family: inherit; background: var(--sp-off); outline: none; transition: border-color .2s; }
.sp-header-search input:focus { border-color: var(--sp-blue); background: #fff; }
.sp-header-search .sp-search-ico { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--sp-muted); font-size: 1em; }
.sp-header-ctas { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.sp-hdr-call { display: flex; align-items: center; gap: 8px; padding: 8px 16px; background: var(--sp-off); border: 1.5px solid var(--sp-border); border-radius: 30px; font-size: .82em; font-weight: 700; transition: all .2s; }
.sp-hdr-call:hover { background: #E8F1FF; border-color: var(--sp-blue); }
.sp-hdr-wa   { display: flex; align-items: center; gap: 7px; padding: 8px 18px; background: #25D366; color: #fff; border-radius: 30px; font-size: .82em; font-weight: 800; transition: all .2s; }
.sp-hdr-wa:hover { background: #1da851; }
.sp-hdr-cart { position: relative; display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; background: var(--sp-off); border: 1.5px solid var(--sp-border); border-radius: 50%; font-size: 1.1em; transition: all .2s; }
.sp-hdr-cart:hover { background: #E8F1FF; border-color: var(--sp-blue); }
.sp-cart-count { position: absolute; top: -4px; right: -4px; background: var(--sp-red); color: #fff; font-size: .65em; font-weight: 800; width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }

/* ── Navigation ── */
.sp-nav { background: #fff; border-bottom: 1px solid var(--sp-border); }
.sp-nav-inner { display: flex; align-items: center; max-width: var(--sp-max); margin: 0 auto; padding: 0 clamp(16px,4vw,32px); }
.sp-nav ul { display: flex; list-style: none; gap: 0; }
.sp-nav ul li a { display: flex; align-items: center; gap: 6px; padding: 14px 16px; font-size: .84em; font-weight: 600; color: var(--sp-ink); transition: color .2s; white-space: nowrap; }
.sp-nav ul li a:hover,.sp-nav ul li.current-menu-item > a { color: var(--sp-blue); border-bottom: 2px solid var(--sp-blue); }
.sp-nav-badge { background: var(--sp-red); color: #fff; font-size: .65em; padding: 1px 6px; border-radius: 30px; font-weight: 800; }
.sp-nav-badge.new { background: var(--sp-green); }
.sp-nav-wa { margin-left: auto; display: flex; align-items: center; gap: 7px; padding: 8px 16px; background: #25D366; color: #fff !important; border-radius: 20px; font-size: .82em !important; font-weight: 800 !important; }
.sp-nav-toggle { display: none; background: none; border: none; cursor: pointer; padding: 8px; }
.sp-nav-toggle span { display: block; width: 22px; height: 2px; background: var(--sp-ink); margin: 5px 0; transition: all .2s; }

/* ── Hero ── */
.sp-hero { position: relative; overflow: hidden; background: linear-gradient(145deg, #0a1f5c 0%, var(--sp-blue) 60%, var(--sp-sky) 100%); }
.sp-hero-inner { max-width: var(--sp-max); margin: 0 auto; padding: clamp(50px,8vw,90px) clamp(16px,4vw,32px); display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(24px,4vw,48px); align-items: center; }
.sp-hero-eyebrow { display: inline-flex; align-items: center; gap: 7px; background: rgba(255,255,255,.15); padding: 6px 16px; border-radius: 30px; font-size: .8em; font-weight: 700; color: #fff; margin-bottom: 14px; backdrop-filter: blur(8px); }
.sp-hero-h1 { font-size: clamp(2em,5vw,3.2em); font-weight: 900; color: #fff; line-height: 1.08; margin-bottom: 16px; }
.sp-hero-h1 .accent { color: #FFD54F; }
.sp-hero-desc { font-size: clamp(.88em,1.1vw,.98em); color: rgba(255,255,255,.88); line-height: 1.75; margin-bottom: 22px; max-width: 520px; }
.sp-hero-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.sp-hero-chip { background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.28); padding: 5px 13px; border-radius: 20px; font-size: .8em; font-weight: 600; color: #fff; }
.sp-hero-btns { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 34px; }
.sp-hero-stats { display: flex; gap: 28px; flex-wrap: wrap; }
.sp-hero-stat-num { display: block; font-size: 1.9em; font-weight: 900; color: #FFD54F; }
.sp-hero-stat-lbl { font-size: .78em; color: rgba(255,255,255,.75); }
.sp-hero-right { display: flex; align-items: center; justify-content: center; }

/* ── Book Form ── */
.sp-book-card { background: #fff; border-radius: 18px; padding: clamp(18px,2.4vw,26px); box-shadow: 0 20px 60px rgba(0,0,0,.2); border-top: 4px solid var(--sp-blue); position: relative; }
.sp-book-badge { position: absolute; top: -14px; right: 16px; background: linear-gradient(135deg,var(--sp-red),#FF6B35); color: #fff; padding: 5px 13px; border-radius: 30px; font-size: .72em; font-weight: 900; }
.sp-book-title { font-size: .9em; font-weight: 800; color: var(--sp-ink); margin-bottom: 14px; }
.sp-book-card form { display: flex; flex-direction: column; gap: 10px; }
.sp-book-card input,.sp-book-card select { background: var(--sp-off); border: 1.5px solid var(--sp-border); border-radius: 10px; padding: 11px 14px; font-size: .88em; color: var(--sp-ink); font-family: inherit; width: 100%; outline: none; transition: border-color .2s; -webkit-appearance: none; }
.sp-book-card input:focus,.sp-book-card select:focus { border-color: var(--sp-blue); background: #fff; }
.sp-book-submit { background: var(--sp-blue); color: #fff; border: none; border-radius: 10px; padding: 13px; font-weight: 800; font-size: .92em; cursor: pointer; font-family: inherit; transition: background .2s; }
.sp-book-submit:hover { background: #0d47a1; }
.sp-book-wa { background: #25D366; color: #fff; border-radius: 10px; padding: 13px; font-weight: 800; font-size: .92em; text-align: center; text-decoration: none; display: block; }
.sp-assure { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.sp-assure span { font-size: .72em; color: var(--sp-muted); }

/* ── Trust Bar ── */
.sp-trust-bar { background: #fff; border-bottom: 1px solid var(--sp-border); overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sp-trust-inner { display: flex; min-width: max-content; max-width: var(--sp-max); margin: 0 auto; }
.sp-trust-item { display: flex; align-items: center; gap: 11px; padding: clamp(12px,1.6vw,16px) clamp(16px,2.2vw,24px); border-right: 1px solid var(--sp-border); flex-shrink: 0; }
.sp-trust-item:last-child { border-right: none; }
.sp-trust-ico { width: 38px; height: 38px; border-radius: 50%; background: #E8F1FF; display: flex; align-items: center; justify-content: center; font-size: 1em; flex-shrink: 0; }
.sp-trust-lbl { font-size: .82em; font-weight: 700; color: var(--sp-ink); }
.sp-trust-sub { font-size: .72em; color: var(--sp-muted); }

/* ── Product Categories ── */
.sp-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: clamp(10px,1.5vw,16px); }
.sp-cat-card { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: clamp(18px,2.5vw,26px) 12px; background: #fff; border: 1.5px solid var(--sp-border); border-radius: 16px; text-decoration: none; transition: all .22s; box-shadow: var(--sp-shadow); }
.sp-cat-card:hover { transform: translateY(-4px); border-color: var(--sp-blue); box-shadow: 0 8px 32px rgba(21,101,192,.14); }
.sp-cat-emoji { font-size: 2.4em; }
.sp-cat-name  { font-weight: 700; font-size: .88em; color: var(--sp-ink); text-align: center; }
.sp-cat-count { font-size: .76em; color: var(--sp-blue); font-weight: 600; }

/* ── Products Grid ── */
.sp-products-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: clamp(12px,1.8vw,20px); }
@media(max-width:900px){ .sp-products-grid { grid-template-columns: repeat(3,1fr); } }
@media(max-width:600px){ .sp-products-grid { grid-template-columns: repeat(2,1fr); } }
.sp-prod-card { background: #fff; border: 1.5px solid var(--sp-border); border-radius: 16px; overflow: hidden; transition: all .22s; box-shadow: var(--sp-shadow); }
.sp-prod-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(21,101,192,.14); }
.sp-prod-img  { position: relative; aspect-ratio: 1; background: linear-gradient(135deg,#E8F1FF,#d0e4ff); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.sp-prod-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sp-prod-emoji-fallback { font-size: 4em; }
.sp-prod-badge { position: absolute; top: 10px; left: 10px; padding: 3px 10px; border-radius: 20px; font-size: .7em; font-weight: 800; color: #fff; }
.sp-prod-badge.new      { background: var(--sp-blue); }
.sp-prod-badge.sale     { background: var(--sp-orange); }
.sp-prod-badge.hot      { background: var(--sp-red); }
.sp-prod-badge.rent     { background: #7B1FA2; }
.sp-prod-badge.featured { background: var(--sp-green); }
.sp-prod-wa-btn { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(37,211,102,.95); color: #fff; text-align: center; padding: 9px; font-size: .8em; font-weight: 800; transform: translateY(100%); transition: transform .22s; }
.sp-prod-card:hover .sp-prod-wa-btn { transform: translateY(0); }
.sp-prod-info  { padding: 14px; }
.sp-prod-brand { font-size: .72em; font-weight: 700; color: var(--sp-blue); text-transform: uppercase; letter-spacing: .4px; margin-bottom: 3px; }
.sp-prod-name  { font-weight: 700; font-size: .88em; color: var(--sp-ink); line-height: 1.3; margin-bottom: 7px; }
.sp-prod-name a { color: inherit; text-decoration: none; }
.sp-prod-name a:hover { color: var(--sp-blue); }
.sp-prod-specs { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }
.sp-prod-spec  { background: var(--sp-off); border: 1px solid var(--sp-border); font-size: .68em; padding: 2px 7px; border-radius: 4px; color: var(--sp-muted); }
.sp-prod-stars { font-size: .78em; color: var(--sp-gold); margin-bottom: 8px; }
.sp-prod-stars span { color: var(--sp-muted); }
.sp-prod-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.sp-price-now  { font-size: 1.15em; font-weight: 900; color: var(--sp-ink); }
.sp-price-old  { font-size: .82em; color: var(--sp-muted); text-decoration: line-through; }
.sp-price-off  { font-size: .76em; font-weight: 700; color: var(--sp-green); }
.sp-prod-btns  { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.sp-btn-enquire { background: var(--sp-blue); color: #fff; border: none; border-radius: 9px; padding: 10px; font-weight: 700; font-size: .84em; cursor: pointer; font-family: inherit; text-align: center; text-decoration: none; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.sp-btn-enquire:hover { background: #0d47a1; }
.sp-btn-wa-sm  { width: 40px; height: 38px; background: #25D366; color: #fff; border-radius: 9px; display: flex; align-items: center; justify-content: center; text-decoration: none; font-size: 1.1em; transition: background .2s; }
.sp-btn-wa-sm:hover { background: #1da851; }

/* ── Why Us ── */
.sp-why-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(12px,1.8vw,18px); }
@media(max-width:640px){ .sp-why-grid { grid-template-columns: 1fr 1fr; } }
.sp-why-card { background: #fff; border: 1.5px solid var(--sp-border); border-radius: 14px; padding: clamp(16px,2vw,22px); transition: all .22s; box-shadow: var(--sp-shadow); }
.sp-why-card:hover { transform: translateY(-3px); border-color: var(--sp-blue); }
.sp-why-ico   { width: 48px; height: 48px; border-radius: 12px; background: #E8F1FF; display: flex; align-items: center; justify-content: center; font-size: 1.3em; margin-bottom: 12px; }
.sp-why-title { font-size: .92em; font-weight: 700; color: var(--sp-ink); margin-bottom: 6px; }
.sp-why-desc  { font-size: .84em; color: var(--sp-muted); line-height: 1.6; }

/* ── Reviews ── */
.sp-rev-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(12px,1.8vw,18px); }
@media(max-width:640px){ .sp-rev-grid { grid-template-columns: 1fr; } }
.sp-rev-card  { background: #fff; border: 1.5px solid var(--sp-border); border-radius: 16px; padding: clamp(16px,2vw,22px); box-shadow: var(--sp-shadow); }
.sp-rev-stars { color: var(--sp-gold); font-size: .95em; margin-bottom: 8px; letter-spacing: 2px; }
.sp-rev-tag   { display: inline-block; background: #E8F1FF; color: var(--sp-blue); padding: 2px 9px; border-radius: 20px; font-size: .7em; font-weight: 700; margin-bottom: 9px; }
.sp-rev-text  { font-size: .88em; color: var(--sp-muted); line-height: 1.72; font-style: italic; margin-bottom: 12px; }
.sp-rev-name  { font-weight: 700; font-size: .88em; }
.sp-rev-loc   { font-size: .78em; color: var(--sp-muted); }
.sp-rev-tick  { display: inline-flex; align-items: center; gap: 3px; background: #E6F9EE; color: var(--sp-green); padding: 2px 8px; border-radius: 20px; font-size: .7em; font-weight: 700; margin-top: 5px; }

/* ── FAQ ── */
.sp-faq-wrap { max-width: 760px; margin: 0 auto; }
.sp-faq-item { background: #fff; border: 1.5px solid var(--sp-border); border-radius: 11px; margin-bottom: 8px; overflow: hidden; cursor: pointer; transition: border-color .2s; }
.sp-faq-item:hover { border-color: var(--sp-sky); }
.sp-faq-q    { padding: 16px 18px; font-weight: 700; font-size: .92em; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.sp-faq-arr  { color: var(--sp-blue); flex-shrink: 0; transition: transform .25s; }
.sp-faq-a    { font-size: .88em; color: var(--sp-muted); line-height: 1.72; padding: 0 18px; max-height: 0; overflow: hidden; transition: max-height .35s ease,padding .3s; }

/* ── Areas ── */
.sp-areas-grid { display: flex; flex-wrap: wrap; gap: clamp(6px,1vw,10px); }
.sp-area-tag   { background: #fff; border: 1.5px solid var(--sp-border); color: var(--sp-ink); padding: 7px 15px; border-radius: 8px; font-size: .84em; font-weight: 600; transition: all .2s; text-decoration: none; display: inline-block; }
.sp-area-tag:hover { background: #E8F1FF; border-color: var(--sp-blue); color: var(--sp-blue); }

/* ── Promo Grid ── */
.sp-promo-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(12px,2vw,20px); }
.sp-promo-single { grid-template-columns: 1fr; }
@media(max-width:640px){ .sp-promo-grid { grid-template-columns: 1fr; } }
.sp-promo-card { border-radius: 18px; padding: clamp(24px,3vw,36px); position: relative; overflow: hidden; color: #fff; }
.sp-promo-card-primary { background: linear-gradient(135deg,var(--sp-blue),var(--sp-sky)); }
.sp-promo-card-accent  { background: linear-gradient(135deg,var(--sp-green),#00C060); }
.sp-promo-deco { position: absolute; right: -20px; top: -20px; font-size: 6em; opacity: .12; }
.sp-promo-label { display: inline-block; background: rgba(255,255,255,.2); padding: 4px 12px; border-radius: 20px; font-size: .72em; font-weight: 700; margin-bottom: 12px; }
.sp-promo-title { font-size: clamp(1.3em,2vw,1.6em); font-weight: 800; margin-bottom: 10px; line-height: 1.2; color: #fff; }
.sp-promo-desc  { font-size: .9em; opacity: .88; margin-bottom: 18px; line-height: 1.6; }
.sp-promo-btn   { display: inline-block; background: #fff; padding: 11px 22px; border-radius: 9px; font-weight: 800; font-size: .88em; transition: all .2s; color: var(--sp-blue); }
.sp-promo-card-accent .sp-promo-btn { color: var(--sp-green); }
.sp-promo-btn:hover { transform: translateY(-2px); }

/* ── Contact ── */
.sp-con-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px,2.5vw,32px); }
@media(max-width:640px){ .sp-con-grid { grid-template-columns: 1fr; } }
.sp-con-card { background: #fff; border: 1.5px solid var(--sp-border); border-radius: 16px; padding: clamp(18px,2.5vw,28px); box-shadow: var(--sp-shadow); }
.sp-con-item { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 14px; font-size: .9em; }
.sp-con-ico  { width: 36px; height: 36px; background: #E8F1FF; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: .95em; flex-shrink: 0; }
.sp-con-item a { color: var(--sp-blue); font-weight: 700; }
.sp-con-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 16px; }
.sp-enq-form { display: flex; flex-direction: column; gap: 12px; }
.sp-enq-form input,.sp-enq-form select,.sp-enq-form textarea { background: var(--sp-off); border: 1.5px solid var(--sp-border); border-radius: 9px; padding: 11px 14px; font-size: .88em; font-family: inherit; width: 100%; outline: none; transition: border-color .2s; }
.sp-enq-form input:focus,.sp-enq-form select:focus,.sp-enq-form textarea:focus { border-color: var(--sp-blue); background: #fff; }
.sp-enq-submit { background: linear-gradient(90deg,var(--sp-blue),var(--sp-sky)); color: #fff; border: none; padding: 14px; border-radius: 10px; font-weight: 800; font-size: .95em; cursor: pointer; font-family: inherit; }

/* ── CTA Banner ── */
.sp-cta-sec { background: linear-gradient(135deg,#0a1f5c,var(--sp-blue)); padding: clamp(56px,7vw,88px) 0; text-align: center; }
.sp-cta-tag  { display: inline-flex; background: rgba(255,255,255,.15); padding: 5px 14px; border-radius: 30px; font-size: .75em; font-weight: 700; color: #fff; margin-bottom: 12px; }
.sp-cta-h    { font-size: clamp(1.5em,4vw,2.4em); font-weight: 800; color: #fff; margin-bottom: 10px; }
.sp-cta-sub  { color: rgba(255,255,255,.85); font-size: .98em; margin-bottom: 26px; }
.sp-cta-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.sp-cta-rating { margin-top: 18px; color: rgba(255,255,255,.65); font-size: .82em; }

/* ── Footer ── */
.sp-footer { background: #0D1B2A; color: rgba(255,255,255,.8); }
.sp-footer-grid { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 32px; padding: 56px 0 40px; }
@media(max-width:768px){ .sp-footer-grid { grid-template-columns: 1fr 1fr; } }
.sp-footer h4 { color: #fff; font-size: .9em; font-weight: 700; margin-bottom: 14px; }
.sp-footer ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.sp-footer ul li a { font-size: .84em; color: rgba(255,255,255,.65); transition: color .2s; }
.sp-footer ul li a:hover { color: #fff; }
.sp-footer-con a,.sp-footer-con span { color: rgba(255,255,255,.75); font-size: .84em; display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.sp-footer-con a:hover { color: #fff; }
.sp-footer-social { display: flex; gap: 12px; margin-top: 16px; flex-wrap: wrap; }
.sp-footer-social a { background: rgba(255,255,255,.1); padding: 6px 14px; border-radius: 6px; font-size: .78em; color: rgba(255,255,255,.7); transition: all .2s; }
.sp-footer-social a:hover { background: rgba(255,255,255,.2); color: #fff; }
.sp-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 20px 0; display: flex; justify-content: space-between; align-items: center; font-size: .8em; color: rgba(255,255,255,.45); flex-wrap: wrap; gap: 10px; }
.sp-footer-bottom a { color: rgba(255,255,255,.5); }

/* ── Float Buttons ── */
.sp-float-btns { position: fixed; bottom: 80px; right: 16px; display: flex; flex-direction: column; gap: 10px; z-index: 9000; }
.sp-float-btn  { width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.4em; box-shadow: 0 4px 20px rgba(0,0,0,.2); text-decoration: none; transition: transform .2s; }
.sp-float-btn:hover { transform: scale(1.1); }
.sp-float-wa   { background: #25D366; color: #fff; }
.sp-float-call { background: var(--sp-blue); color: #fff; }
.sp-callbar    { display: none; }
@media(max-width:860px){
  .sp-callbar { position: fixed; bottom: 0; left: 0; right: 0; display: grid; grid-template-columns: 1fr 1fr; z-index: 9001; box-shadow: 0 -4px 20px rgba(0,0,0,.15); }
  .sp-callbar a { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px; font-weight: 800; font-size: .9em; color: #fff; text-decoration: none; }
  .sp-callbar .sp-cb-call { background: var(--sp-blue); }
  .sp-callbar .sp-cb-wa   { background: #25D366; }
  body { padding-bottom: 56px; }
}

/* ── Mobile Navigation ── */
@media(max-width:768px){
  .sp-header-search { display: none; }
  .sp-hdr-call div { display: none; }
  .sp-nav-toggle { display: block; }
  .sp-nav ul { display: none; flex-direction: column; width: 100%; }
  .sp-nav ul.sp-nav-open { display: flex; }
  .sp-nav-inner { flex-wrap: wrap; }
  .sp-nav-wa { display: none; }
  .sp-hero-inner { grid-template-columns: 1fr; }
  .sp-hero-right { display: none; }
}

/* ── Elementor Overrides ── */
body.elementor-page .sp-header,
body.elementor-page .sp-footer,
body.elementor-page .sp-ann-bar,
body.elementor-page .sp-float-btns,
body.elementor-page .sp-callbar { display: flex !important; }
.elementor-section-stretched { width: 100vw !important; left: 0 !important; }
body.elementor-page #sp-main-content { padding: 0 !important; }
.elementor-page .sp-container { max-width: 100%; padding: 0; }

/* ── WooCommerce ── */
.woocommerce-page .sp-products-grid { grid-template-columns: repeat(4,1fr); }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; list-style: none; margin: 0; padding: 0; }
.woocommerce ul.products li.product { margin: 0; }
.woocommerce .woocommerce-breadcrumb { padding: 14px 0; color: var(--sp-muted); font-size: .84em; }
@media(max-width:600px){
  .woocommerce ul.products { grid-template-columns: repeat(2,1fr); }
}

/* ── Utilities ── */
.sp-text-center { text-align: center; }
.sp-mt-8  { margin-top: 8px; }
.sp-mt-16 { margin-top: 16px; }
.sp-mt-24 { margin-top: 24px; }
.sp-mt-40 { margin-top: 40px; }
.sp-mb-8  { margin-bottom: 8px; }
.sp-mb-24 { margin-bottom: 24px; }
.sp-row   { display: flex; gap: 12px; flex-wrap: wrap; }
.sp-row-center { justify-content: center; }
.sp-hidden-mobile { display: block; }
@media(max-width:640px){ .sp-hidden-mobile { display: none; } }

/* ── WordPress Core (Block Editor, Gallery, etc.) ── */
.entry-content { line-height: 1.85; }
.entry-content p { margin-bottom: 1.2em; }
.entry-content h2,.entry-content h3 { margin-top: 1.5em; margin-bottom: .5em; }
.entry-content img { border-radius: 8px; }
.entry-content a { color: var(--sp-blue); text-decoration: underline; }
.wp-block-image { margin-bottom: 1.5em; }
.alignwide { max-width: calc(var(--sp-max) + 100px); }
.alignfull { max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
