/* =========================================================
   LUXCARA — SHARED TYPOGRAPHY SYSTEM
   Body: Poppins | Headings / accents: Playfair Display
   Loaded after all page CSS so it normalises the full website.
   ========================================================= */
:root {
  --font-body: 'Poppins', Arial, Helvetica, sans-serif;
  --font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans: var(--font-body);
  --serif: var(--font-heading);
  --reading-size: clamp(0.92rem, 0.16vw + 0.88rem, 1rem);
  --meta-size: clamp(0.62rem, 0.12vw + 0.59rem, 0.7rem);
}

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body,
button,
input,
textarea,
select { font-family: var(--font-body) !important; }

body { font-size: var(--reading-size); line-height: 1.7; font-weight: 400; }
button,
input,
textarea,
select { font-size: 0.9rem; }

/* Luxury display type only where visual hierarchy is needed. */
h1, h2, h3, h4, h5, h6,
.display, .title, .hero-title,
.section-heading h2, .feedback-heading h2,
.feedback-content blockquote,
.collections-hero .display,
.visit-intro h2,
.about-hero-copy h1, .about-statement h2, .about-detail h2,
.values-message h2, .about-cta h2,
.editorial-page .editorial-hero h1,
.challenge-intro-copy h2, .challenge-feature-copy h2,
.process-overview-copy h2, .process-journey-heading h2, .process-closing h2,
.process-stage-copy h3,
.why-story-copy h2, .why-benefits-heading h2, .why-closing h2,
.collection-copy h2, .collections-empty h2,
.shop-list-hero h1, .shop-list-card h2,
.product-info h2, .product-info h3,
.category-info h3, .all-collection-info h2,
.mobile-menu nav a, .menu-panel a {
  font-family: var(--font-heading) !important;
  font-weight: 400;
}

/* Body copy and controls: readable at every device width. */
p, li, td, th, label, input, textarea, select,
.copy, .rich, .hero-copy p, .inner-hero p,
.collections-hero p, .collections-intro,
.collection-copy p, .shop-list-card p,
.about-detail > p:not(.section-kicker), .values-copy p,
.challenge-intro-copy > p:last-child, .challenge-card p,
.challenge-feature-copy > p:not(.page-eyebrow),
.process-overview-copy > p:not(.page-eyebrow), .process-stage-copy p,
.why-story-copy > p:not(.page-eyebrow), .why-benefit-card p,
.why-closing > p:not(.page-eyebrow),
.hero-intro, .process-overview-note {
  font-family: var(--font-body) !important;
  font-size: var(--reading-size);
  line-height: 1.75;
}

/* Small navigation and metadata remain elegant but are never unreadably tiny. */
.eyebrow, .page-eyebrow, .section-kicker,
.stats-label, .about-number p,
.category-info small, .product-info small,
.feedback-photo-tag, .feedback-author small,
.header-count,
.footer-main h4, .footer-bottom,
.nav a, .menu-trigger, .desktop-nav a,
.header-cta, .small-btn, .outline-btn,
.button, .link, .text-link, .editorial-button,
.product-wishlist, .product-card-actions .ajax-cart,
.cart-float, .shop-list-card small {
  font-family: var(--font-body) !important;
  font-size: var(--meta-size) !important;
  font-weight: 600;
  letter-spacing: 0.11em;
}

/* Header and footer */
.desktop-nav a { font-size: clamp(0.66rem, 0.2vw + 0.62rem, 0.74rem) !important; letter-spacing: 0.07em; }
.header-cta, .small-btn, .outline-btn, .button, .editorial-button { font-size: clamp(0.66rem, 0.16vw + 0.63rem, 0.74rem) !important; }
.header-icon { font-family: var(--font-body) !important; font-size: 0.72rem !important; font-weight: 600; }
.header-count { font-size: 0.58rem !important; }
.mobile-menu nav a { font-size: clamp(2rem, 8.5vw, 2.7rem) !important; line-height: 1.08; }
.footer-main p, .footer-main a { font-size: 0.82rem; line-height: 1.8; }

/* Universal headline scale */
.display { font-size: clamp(3.15rem, 6vw, 6.25rem) !important; line-height: 0.96; letter-spacing: -0.045em; }
.title { font-size: clamp(2.3rem, 4.4vw, 4.75rem) !important; line-height: 1.02; letter-spacing: -0.035em; }
.hero-title span, .hero-title strong { font-size: clamp(2.65rem, 4.8vw, 5rem) !important; line-height: 0.98; letter-spacing: -0.045em; }

/* Home page */
.site-shell .hero-copy p { max-width: 560px; font-size: clamp(0.9rem, 0.25vw + 0.86rem, 1rem); line-height: 1.75; }
.site-shell .stats-row strong { font-family: var(--font-heading) !important; font-size: clamp(2.6rem, 3vw, 3.7rem); line-height: 1; }
.site-shell .stats-row b { font-family: var(--font-heading) !important; font-size: clamp(1.7rem, 2.1vw, 2.4rem); }
.site-shell .stats-row span { font-size: 0.73rem; line-height: 1.35; }
.site-shell .who-copy h2 { font-size: clamp(2rem, 3.2vw, 3.25rem) !important; line-height: 1.04; letter-spacing: -0.04em; }
.site-shell .who-copy p { font-size: var(--reading-size); line-height: 1.78; }
.site-shell .section-heading h2 { font-size: clamp(2.2rem, 3.8vw, 4.1rem) !important; line-height: 1.03; letter-spacing: -0.04em; }
.site-shell .section-heading > p { font-size: var(--reading-size); line-height: 1.75; }
.site-shell .process-copy > b { font-family: var(--font-heading) !important; font-size: clamp(3.2rem, 4vw, 4.5rem); }
.site-shell .process-copy h3 { font-size: clamp(1.75rem, 2vw, 2.35rem) !important; line-height: 1.08; }
.site-shell .process-copy p { font-size: var(--reading-size); line-height: 1.75; }
.site-shell .process-tab span, .site-shell .process-tab strong { font-size: 0.73rem; }
.site-shell .why-card h3, .why-benefit-card h3 { font-family: var(--font-heading) !important; font-size: clamp(1.32rem, 1.5vw, 1.7rem) !important; line-height: 1.12; font-weight: 500; }
.site-shell .why-card p { font-size: 0.85rem; line-height: 1.7; }
.feedback-heading h2 { font-size: clamp(2.55rem, 4.3vw, 4.35rem) !important; line-height: 0.98; }
.feedback-content blockquote { font-size: clamp(1.6rem, 2.5vw, 2.5rem) !important; line-height: 1.2; }
.feedback-stars { font-size: 0.95rem; }
.feedback-author strong { font-family: var(--font-body) !important; font-size: 0.84rem; }
.collections-hero .display { font-size: clamp(3.2rem, 7vw, 6.6rem) !important; }
.collections-hero p { font-size: var(--reading-size); }
.instagram-heading h2 { font-family: var(--font-heading) !important; font-size: clamp(2.4rem, 4.5vw, 4.7rem) !important; line-height: 1; letter-spacing: -0.045em; }
.category-card h3 { font-size: clamp(1.5rem, 2.2vw, 2.2rem) !important; }
.all-collection-info h2 { font-size: clamp(1.7rem, 2.3vw, 2.25rem) !important; }
.rr-card-text h3 { font-family: var(--font-heading) !important; font-size: clamp(1.9rem, 3vw, 2.65rem) !important; }
.rr-card-text a { font-family: var(--font-body) !important; font-size: 0.82rem; }
.visit-intro h2 { font-size: clamp(2.8rem, 5vw, 5rem) !important; }

/* About page */
.about-hero-copy h1 { font-size: clamp(3.1rem, 5vw, 5.2rem) !important; line-height: 0.98; letter-spacing: -0.04em; }
.about-statement h2 { font-size: clamp(2.1rem, 3.6vw, 3.65rem) !important; line-height: 1.08; }
.about-detail h2 { font-size: clamp(1.9rem, 2.5vw, 2.75rem) !important; }
.values-message h2 { font-size: clamp(3rem, 5vw, 5.8rem) !important; line-height: 0.95; }
.about-cta h2 { font-size: clamp(2.2rem, 3.6vw, 3.5rem) !important; line-height: 1.05; }
.values-copy li { font-size: 0.9rem; line-height: 1.6; }

/* Challenges, Process and Why Choose pages */
.editorial-page .editorial-hero h1 { font-size: clamp(3rem, 5.6vw, 5.65rem) !important; line-height: 0.98; }
.editorial-page .hero-intro { font-size: clamp(0.94rem, 0.2vw + 0.9rem, 1.05rem); line-height: 1.75; }
.challenge-intro-copy h2, .challenge-feature-copy h2,
.process-overview-copy h2, .process-journey-heading h2, .process-closing h2,
.why-story-copy h2, .why-benefits-heading h2, .why-closing h2 { font-size: clamp(2.15rem, 3.8vw, 3.8rem) !important; line-height: 1.04; }
.challenge-card h3 { font-size: clamp(1.55rem, 2vw, 2rem) !important; line-height: 1.1; }
.process-stage-meta { font-family: var(--font-heading) !important; }
.process-stage-copy h3 { font-size: clamp(1.6rem, 2vw, 2.1rem) !important; line-height: 1.1; }
.process-overview-note { font-size: 0.85rem; }
.why-benefit-card p { font-size: 0.88rem; line-height: 1.72; }

/* Store / generic content pages */
.collection-copy h2 { font-size: clamp(1.7rem, 2.2vw, 2.3rem) !important; line-height: 1.12; }
.collection-copy p, .shop-list-card p { font-size: var(--reading-size); }
.shop-list-hero h1 { font-size: clamp(3.2rem, 6vw, 6.5rem) !important; }
.shop-list-card h2 { font-size: clamp(1.6rem, 2vw, 2.15rem) !important; }
.product-info h2, .product-info h3 { font-size: clamp(1.55rem, 2vw, 2.15rem) !important; }
.rich { font-size: 1rem; line-height: 1.85; }

@media (max-width: 760px) {
  body { font-size: 0.94rem; }
  .site-shell .hero-title span, .site-shell .hero-title strong { font-size: clamp(2.35rem, 10.4vw, 3.5rem) !important; }
  .site-shell .section-heading h2 { font-size: clamp(2rem, 9vw, 2.8rem) !important; }
  .site-shell .who-copy h2 { font-size: clamp(1.95rem, 8vw, 2.55rem) !important; }
  .site-shell .process-copy h3 { font-size: 1.75rem !important; }
  .site-shell .why-card h3, .why-benefit-card h3 { font-size: 1.45rem !important; }
  .feedback-content blockquote { font-size: clamp(1.45rem, 6.5vw, 2rem) !important; }
  .about-hero-copy h1 { font-size: clamp(2.65rem, 11vw, 3.5rem) !important; }
  .values-message h2 { font-size: clamp(2.8rem, 13vw, 4.3rem) !important; }
  .editorial-page .editorial-hero h1 { font-size: clamp(2.55rem, 11vw, 3.65rem) !important; }
  .challenge-intro-copy h2, .challenge-feature-copy h2,
  .process-overview-copy h2, .process-journey-heading h2, .process-closing h2,
  .why-story-copy h2, .why-benefits-heading h2, .why-closing h2 { font-size: clamp(2rem, 9vw, 2.75rem) !important; }
  .header-cta { font-size: 0.62rem !important; }
}
