/* =============================================================================
   SmartHomeSewa — Typography System (Urban Company–inspired)
   Compact, professional, clean — 15 px base, strong hierarchy.
   Loaded last; all overrides use specificity, not !important abuse.
   ============================================================================= */

/* ── 1. ROOT — 16 px so 1 rem = 16 px (browser default) ─────────────────── */
html {
  font-size: 16px;
}

/* ── 2. BODY ─────────────────────────────────────────────────────────────── */
body {
  font-family: 'Plus Jakarta Sans', 'Inter', 'Segoe UI', system-ui, sans-serif;
  font-size: 0.9375rem;   /* 15 px — compact professional like Urban Company */
  font-weight: 400;
  line-height: 1.6;
  color: #1a1a2e;
  letter-spacing: -0.01em;
}

/* ── 3. HEADINGS — clear hierarchy ──────────────────────────────────────── */
h1, .h1 {
  font-size: clamp(1.875rem, 4.5vw, 3rem);  /* 30–48 px */
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: #0f0f1a;
}
h2, .h2 {
  font-size: clamp(1.5rem, 3vw, 2.125rem);  /* 24–34 px */
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.025em;
  color: #0f0f1a;
}
h3, .h3 {
  font-size: clamp(1.125rem, 2vw, 1.375rem); /* 18–22 px */
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: #0f0f1a;
}
h4, .h4 {
  font-size: 1.0625rem;   /* 17 px */
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: #0f0f1a;
}
h5, .h5 { font-size: 0.9375rem; font-weight: 600; line-height: 1.4; }
h6, .h6 { font-size: 0.875rem;  font-weight: 600; line-height: 1.4; }

/* ── 4. PARAGRAPH & TEXT ─────────────────────────────────────────────────── */
p {
  font-size: 0.9375rem;   /* 15 px */
  line-height: 1.65;
  color: #374151;
  margin-bottom: 1rem;
}

small, .small { font-size: 0.8125rem; } /* 13 px */

/* ── 5. TOPBAR (very slim) ───────────────────────────────────────────────── */
.sh-topbar,
.sh-topbar a,
.sh-topbar-links a,
.sh-topbar-user a,
.sh-topbar-social a {
  font-size: 0.8125rem;   /* 13 px */
  line-height: 1.4;
}

/* ── 6. HEADER CONTACT STRIP ────────────────────────────────────────────── */
.sh-header-info-text span {
  font-size: 0.6875rem;   /* 11 px — label */
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}
.sh-header-info-text a,
.sh-header-info-text p    { font-size: 0.875rem; } /* 14 px */
.sh-header-info-icon      { font-size: 1rem; }

/* ── 7. NAVBAR ───────────────────────────────────────────────────────────── */
.sh-nav-links > li > a {
  font-size: 0.9375rem;   /* 15 px */
  font-weight: 600;
  letter-spacing: -0.01em;
}
.sh-mega-menu a {
  font-size: 0.875rem;    /* 14 px */
  font-weight: 500;
}

/* ── 8. BUTTONS ──────────────────────────────────────────────────────────── */
.sh-btn {
  font-size: 0.875rem;    /* 14 px */
  font-weight: 700;
  letter-spacing: 0.01em;
  padding: 0.6rem 1.375rem;
  line-height: 1.5;
}
.sh-btn-lg {
  font-size: 0.9375rem;   /* 15 px */
  padding: 0.75rem 1.75rem;
}
.sh-badge {
  font-size: 0.6875rem;   /* 11 px */
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* ── 9. SECTION HEADINGS ─────────────────────────────────────────────────── */
.sh-section-heading h2 {
  font-size: clamp(1.5rem, 3vw, 2.125rem);
  font-weight: 700;
  letter-spacing: -0.025em;
}
.sh-section-heading p {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: #6b7280;
}

/* ── 10. HERO ────────────────────────────────────────────────────────────── */
.sh-hero-content h1 {
  font-size: clamp(2rem, 5.5vw, 3.5rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.035em;
}
.sh-hero-content p {
  font-size: 1rem;        /* 16 px */
  line-height: 1.65;
  color: rgba(255,255,255,0.82);
}

/* ── 11. CARDS ───────────────────────────────────────────────────────────── */
/* Service cards */
.sh-service-card-body h3 { font-size: 1rem;      font-weight: 700; }
.sh-service-card-body p  { font-size: 0.875rem;  line-height: 1.6; color: #6b7280; }

/* Feature cards */
.sh-feature-card h3 { font-size: 1rem;     font-weight: 700; }
.sh-feature-card p  { font-size: 0.875rem; line-height: 1.6; color: #6b7280; }

/* Product cards */
.sh-product-card-body h3    { font-size: 0.875rem; font-weight: 700; }
.sh-product-card-price      { font-size: 1rem;     font-weight: 800; }
.sh-product-card-desc       { font-size: 0.8125rem; line-height: 1.55; color: #9ca3af; }

/* Blog cards */
.sh-blog-card-body h3 a     { font-size: 0.9375rem; font-weight: 700; }
.sh-blog-card-body p        { font-size: 0.875rem;  line-height: 1.6;  color: #6b7280; }
.sh-blog-card-meta span     { font-size: 0.8125rem; color: #9ca3af; }

/* Team cards */
.sh-team-card-body h3       { font-size: 1rem;      font-weight: 700; }
.sh-team-card-body .role    { font-size: 0.8125rem; font-weight: 600; }
.sh-team-card-body p        { font-size: 0.8125rem; line-height: 1.6; color: #6b7280; }

/* Partner cards */
.sh-partner-card-body h3    { font-size: 0.875rem; font-weight: 700; }
.sh-partner-card-body p     { font-size: 0.8125rem; color: #9ca3af; }

/* ── 12. STATS ───────────────────────────────────────────────────────────── */
.sh-stat-number {
  font-size: clamp(1.875rem, 3.5vw, 2.75rem);
  font-weight: 800;
  letter-spacing: -0.03em;
}
.sh-stat-label {
  font-size: 0.75rem;     /* 12 px */
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

/* ── 13. PRICING ─────────────────────────────────────────────────────────── */
.sh-pricing-category    { font-size: 0.6875rem; font-weight: 700; letter-spacing: .1em; }
.sh-pricing-name        { font-size: 1.0625rem; font-weight: 700; }
.sh-pricing-price .amount   { font-size: 2.25rem;  font-weight: 800; letter-spacing: -0.03em; }
.sh-pricing-price .currency { font-size: 1.125rem; font-weight: 700; }
.sh-pricing-price .period   { font-size: 0.8125rem; }
.sh-pricing-features li     { font-size: 0.875rem; line-height: 1.55; }

/* ── 14. TESTIMONIALS ────────────────────────────────────────────────────── */
.sh-testimonial-quote       { font-size: 0.9375rem; line-height: 1.7; font-style: italic; }
.sh-testimonial-author-name { font-size: 0.875rem;  font-weight: 700; }
.sh-testimonial-author-role { font-size: 0.75rem;   color: rgba(255,255,255,.55); }

/* ── 15. FOOTER ──────────────────────────────────────────────────────────── */
.sh-footer-about-text    { font-size: 0.875rem;  line-height: 1.7; }
.sh-footer-info li,
.sh-footer-info li a     { font-size: 0.875rem;  }
.sh-footer-widget-title  { font-size: 0.9375rem; font-weight: 700; }
.sh-footer-links a       { font-size: 0.875rem;  }
.sh-footer-news a        { font-size: 0.875rem;  font-weight: 600; }
.sh-footer-news .date    { font-size: 0.75rem;   }
.sh-newsletter-desc      { font-size: 0.875rem;  }
.sh-footer-bottom        { font-size: 0.8125rem; }
.sh-newsletter-form input { font-size: 0.875rem; }

/* ── 16. PAGE BANNER ─────────────────────────────────────────────────────── */
.sh-page-banner h1 {
  font-size: clamp(1.625rem, 3.5vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.025em;
}
.sh-breadcrumb .breadcrumb-item,
.sh-breadcrumb .breadcrumb-item a { font-size: 0.8125rem; }

/* ── 17. SIDEBAR ─────────────────────────────────────────────────────────── */
.sh-sidebar-widget-title  { font-size: 0.9375rem; font-weight: 700; }
.sh-sidebar-nav a         { font-size: 0.875rem;  }
.sh-sidebar-post h3       { font-size: 0.875rem;  font-weight: 600; }
.sh-sidebar-post .date    { font-size: 0.75rem;   }

/* ── 18. CONTENT BODY ────────────────────────────────────────────────────── */
.sh-content-body,
.sh-content-body p         { font-size: 0.9375rem; line-height: 1.75; color: #374151; }
.sh-content-body h2        { font-size: 1.5rem;    font-weight: 700; letter-spacing: -0.02em; }
.sh-content-body h3        { font-size: 1.1875rem; font-weight: 700; }
.sh-content-body li        { font-size: 0.9375rem; line-height: 1.7; }

/* ── 19. INNER PAGE COMPONENTS ───────────────────────────────────────────── */
/* About */
.sh-about-content p        { font-size: 0.9375rem; line-height: 1.75; color: #374151; }
.sh-about-content h2       { font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -0.025em; }

/* Plan detail */
.sh-plan-info-card h2      { font-size: 1.375rem; font-weight: 700; }
.sh-plan-info-card .price  { font-size: 2.75rem;  font-weight: 800; letter-spacing: -0.04em; }
.sh-plan-info-card .price .rs { font-size: 1.375rem; }
.sh-plan-info-card .category, .sh-plan-info-card .contact-no { font-size: 0.8125rem; }
.sh-plan-facilities-title  { font-size: 1rem;     font-weight: 700; }
.sh-plan-facility-list li h6 { font-size: 0.9375rem; font-weight: 700; }
.sh-plan-facility-list li p  { font-size: 0.875rem; }

/* Product detail */
.sh-product-info-title        { font-size: clamp(1.25rem, 2.5vw, 1.75rem); letter-spacing: -0.02em; }
.sh-product-info-price .current { font-size: 1.875rem; font-weight: 800; }
.sh-product-info-price .old     { font-size: 1rem; }
.sh-product-info-meta p         { font-size: 0.875rem; }
.sh-product-list-card-body h3   { font-size: 0.9375rem; font-weight: 700; }
.sh-product-price               { font-size: 1.0625rem; font-weight: 800; }
.sh-product-old-price           { font-size: 0.8125rem; }
.sh-product-stock               { font-size: 0.8125rem; color: #9ca3af; }

/* Sub-category */
.sh-subcat-card h3          { font-size: 0.9375rem; font-weight: 700; }
.sh-subcat-card ul li a     { font-size: 0.875rem; }

/* Service detail */
.sh-service-detail-header h2 { font-size: clamp(1.375rem, 2.5vw, 1.875rem); letter-spacing: -0.025em; }
.sh-service-detail-header .meta { font-size: 0.8125rem; }

/* Blog detail */
.sh-blog-detail-title       { font-size: clamp(1.375rem, 3vw, 2rem); letter-spacing: -0.025em; }
.sh-blog-detail-meta span   { font-size: 0.8125rem; }

/* FAQ */
.sh-faq-question            { font-size: 0.9375rem; font-weight: 700; }
.sh-faq-answer              { font-size: 0.9375rem; line-height: 1.7; color: #374151; }

/* Contact */
.sh-contact-info h2         { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; }
.sh-contact-info p          { font-size: 0.9375rem; line-height: 1.7; color: #374151; }
.sh-contact-form-card h2    { font-size: 1.25rem;  font-weight: 700; }
.sh-contact-form-card .form-control { font-size: 0.9375rem; }

/* Privacy */
.sh-privacy-content h2      { font-size: 1.375rem; font-weight: 700; letter-spacing: -0.02em; }
.sh-privacy-content p       { font-size: 0.9375rem; line-height: 1.8; }

/* Order form */
.sh-order-form h3           { font-size: 1rem; font-weight: 700; }
.sh-order-form label        { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.sh-order-form .form-control { font-size: 0.9375rem; }

/* Pagination */
.sh-pagination a,
.sh-pagination span         { font-size: 0.875rem; font-weight: 600; }

/* ── 20. FORMS ───────────────────────────────────────────────────────────── */
.form-control, input, textarea, select {
  font-size: 0.9375rem;
  line-height: 1.55;
}
label { font-size: 0.875rem; font-weight: 500; }

/* ── 21. CTA BAND ────────────────────────────────────────────────────────── */
.sh-cta-content h2 {
  font-size: clamp(1.25rem, 2.5vw, 1.875rem);
  font-weight: 700;
  letter-spacing: -0.025em;
}
.sh-cta-content p { font-size: 0.9375rem; }

/* Appointment */
.sh-appointment-card h2 { font-size: 1.25rem; font-weight: 700; }
.sh-fee-notice          { font-size: 0.875rem; }

/* ── 22. RESPONSIVE ──────────────────────────────────────────────────────── */
@media (max-width: 767px) {
  body { font-size: 0.9375rem; }  /* stays 15 px */
  .sh-hero-content h1 { font-size: 1.875rem; letter-spacing: -0.025em; }
  .sh-section-heading h2 { font-size: 1.375rem; }
  .sh-stat-number { font-size: 1.75rem; }
  .sh-page-banner h1 { font-size: 1.5rem; }
}

@media (max-width: 479px) {
  .sh-hero-content h1  { font-size: 1.625rem; }
  .sh-section-heading h2 { font-size: 1.25rem; }
}
