/* ============================================================
   CIBA — Global Font Force (strict)
   Headings: Merriweather  |  Body: Lato
   Loads last — overrides Elementor, WooCommerce, inline styles
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,300;0,400;0,700;0,900;1,400&family=Merriweather:ital,wght@0,300;0,400;0,700;0,900;1,400&display=swap');

:root {
  --ciba-font-heading: "Merriweather", Georgia, "Times New Roman", serif;
  --ciba-font-body: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;

  --e-global-typography-primary-font-family: var(--ciba-font-heading) !important;
  --e-global-typography-secondary-font-family: var(--ciba-font-heading) !important;
  --e-global-typography-text-font-family: var(--ciba-font-body) !important;
  --e-global-typography-accent-font-family: var(--ciba-font-body) !important;
}

/* ── 1. Site-wide body default (maximum coverage) ── */
html,
body,
#page,
.site,
.site-content,
.elementor,
.elementor-page,
.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget-wrap,
.elementor-widget-container,
.woocommerce,
.woocommerce-page {
  font-family: var(--ciba-font-body) !important;
}

html body *:not([class*="eicon"]):not([class*="fa-"]):not([class*="fa "]):not(.dashicons):not(.material-icons):not(.elementor-icon):not(.elementor-icon-list-icon):not(.elementor-social-icon):not(.star-rating):not(i[class*="fa"]):not(i[class*="eicon"]) {
  font-family: var(--ciba-font-body) !important;
}

/* ── 2. All headings (must follow body rule) ── */
html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6,
html body .h1,
html body .h2,
html body .h3,
html body .h4,
html body .h5,
html body .h6,
html body .wp-block-heading,
html body .entry-title,
html body .page-title,
html body .post-title,
html body .elementor-heading-title,
html body .elementor-widget-heading,
html body .elementor-widget-heading .elementor-heading-title,
html body .elementor-widget-heading .elementor-widget-container,
html body .elementor-widget-theme-post-title .elementor-heading-title,
html body .elementor-widget-icon-box .elementor-icon-box-title,
html body .elementor-widget-image-box .elementor-image-box-title,
html body .elementor-widget-accordion .elementor-accordion-title,
html body .elementor-widget-tabs .elementor-tab-title,
html body .elementor-widget-toggle .elementor-toggle-title,
html body .elementor-post__title,
html body .elementor-post__title a,
html body .woocommerce-loop-product__title,
html body .woocommerce div.product .product_title,
html body .woocommerce-Tabs-panel h2,
html body .woocommerce-billing-fields h3,
html body .woocommerce-shipping-fields h3,
html body .woocommerce-additional-fields h3,
html body .woocommerce-Reviews-title,
html body .woocommerce table.shop_table th,
html body .cart_totals h2,
html body .woocommerce-checkout h3,
html body .related.products > h2,
html body .upsells.products > h2,
html body .cross-sells > h2,
html body .cm-hero__title,
html body .cm-card__name,
html body .cm-sidebar__title,
html body .banner-h1,
html body .sh-title,
html body .card-title,
html body .modal-title,
html body .logo-name,
html body .bstat-num,
html body .no-results h3,
html body .modal-section-title,
html body .footer-logo {
  font-family: var(--ciba-font-heading) !important;
}

/* ── 3. Crush inline font-family styles (text only) ── */
html body [style*="font-family"]:not([class*="eicon"]):not([class*="fa-"]):not(.dashicons):not(.material-icons):not(.elementor-icon),
html body [style*="font-family:"]:not([class*="eicon"]):not([class*="fa-"]):not(.dashicons):not(.material-icons):not(.elementor-icon) {
  font-family: var(--ciba-font-body) !important;
}

html body h1[style*="font-family"],
html body h2[style*="font-family"],
html body h3[style*="font-family"],
html body h4[style*="font-family"],
html body h5[style*="font-family"],
html body h6[style*="font-family"],
html body .elementor-heading-title[style*="font-family"],
html body .woocommerce-loop-product__title[style*="font-family"],
html body .product_title[style*="font-family"] {
  font-family: var(--ciba-font-heading) !important;
}

/* ── 4. Legacy / conflicting font names (direct override) ── */
html body [style*="Poppins"],
html body [style*="poppins"],
html body [style*="Luxenta"],
html body [style*="luxenta"],
html body [style*="DM Serif"],
html body [style*="Merriweather Sans"],
html body [style*="merriweather sans"],
html body [style*="Cormorant"],
html body [style*="cormorant"],
html body [style*="Nunito"],
html body [style*="Roboto"],
html body [style*="Montserrat"],
html body [style*="Open Sans"],
html body [style*="Playfair"] {
  font-family: var(--ciba-font-body) !important;
}

html body h1[style*="Poppins"],
html body h2[style*="Poppins"],
html body h3[style*="Poppins"],
html body h4[style*="Poppins"],
html body h5[style*="Poppins"],
html body h6[style*="Poppins"],
html body h1[style*="DM Serif"],
html body h2[style*="DM Serif"],
html body h3[style*="DM Serif"],
html body h4[style*="DM Serif"],
html body h5[style*="DM Serif"],
html body h6[style*="DM Serif"],
html body h1[style*="Cormorant"],
html body h2[style*="Cormorant"],
html body h3[style*="Cormorant"],
html body h4[style*="Cormorant"],
html body h5[style*="Cormorant"],
html body h6[style*="Cormorant"],
html body h1[style*="Luxenta"],
html body h2[style*="Luxenta"],
html body h3[style*="Luxenta"],
html body .elementor-heading-title[style*="Poppins"],
html body .elementor-heading-title[style*="DM Serif"],
html body .elementor-heading-title[style*="Cormorant"],
html body .elementor-heading-title[style*="Merriweather Sans"],
html body .elementor-heading-title[style*="Luxenta"] {
  font-family: var(--ciba-font-heading) !important;
}

/* ── 5. Elementor per-widget & custom CSS classes ── */
html body .elementor-element,
html body .elementor-element p,
html body .elementor-element span,
html body .elementor-element li,
html body .elementor-element a,
html body .elementor-element label,
html body .elementor-element input,
html body .elementor-element select,
html body .elementor-element textarea,
html body .elementor-element button,
html body .elementor-button,
html body .elementor-button-text,
html body .elementor-nav-menu,
html body .elementor-nav-menu a,
html body .elementor-nav-menu--main a,
html body .elementor-nav-menu--dropdown a,
html body .elementor-widget-text-editor,
html body .elementor-widget-text-editor p,
html body .elementor-widget-text-editor li,
html body .elementor-widget-text-editor a,
html body .elementor-widget-icon-box .elementor-icon-box-description,
html body .elementor-widget-testimonial .elementor-testimonial-content,
html body .elementor-widget-testimonial .elementor-testimonial-name,
html body .elementor-widget-testimonial .elementor-testimonial-job,
html body .elementor-widget-form .elementor-field,
html body .elementor-widget-form .elementor-field-label,
html body .elementor-widget-form .elementor-button,
html body .wpr-nav-menu a,
html body .premium-nav-menu a {
  font-family: var(--ciba-font-body) !important;
}

/* Icon widgets — do NOT force text font on icon elements */
html body .elementor-widget-icon .elementor-icon,
html body .elementor-widget-icon-list .elementor-icon-list-icon,
html body .elementor-widget-social-icons .elementor-social-icon {
  font-family: unset !important;
}

/* ── 6. WooCommerce ── */
html body .woocommerce,
html body .woocommerce p,
html body .woocommerce span,
html body .woocommerce li,
html body .woocommerce a,
html body .woocommerce label,
html body .woocommerce input,
html body .woocommerce select,
html body .woocommerce textarea,
html body .woocommerce a.button,
html body .woocommerce button.button,
html body .woocommerce input.button,
html body .woocommerce #respond input#submit,
html body .woocommerce-message,
html body .woocommerce-info,
html body .woocommerce-error,
html body .woocommerce-breadcrumb,
html body .price,
html body .woocommerce-Price-amount,
html body .woocommerce-product-details__short-description,
html body .woocommerce-tabs .woocommerce-Tabs-panel {
  font-family: var(--ciba-font-body) !important;
}

/* ── 7. Header / footer / nav (exclude icons) ── */
html body header *:not([class*="eicon"]):not([class*="fa-"]):not(.dashicons):not(.material-icons):not(.elementor-icon):not(.elementor-icon-list-icon):not(.elementor-social-icon):not(i[class*="fa"]):not(i[class*="eicon"]),
html body footer *:not([class*="eicon"]):not([class*="fa-"]):not(.dashicons):not(.material-icons):not(.elementor-icon):not(i[class*="fa"]):not(i[class*="eicon"]),
html body header,
html body footer,
html body footer p,
html body footer a,
html body footer li,
html body footer span,
html body nav,
html body nav a,
html body .menu,
html body .menu a {
  font-family: var(--ciba-font-body) !important;
}

html body header h1,
html body header h2,
html body header h3,
html body header h4,
html body footer h1,
html body footer h2,
html body footer h3,
html body footer h4 {
  font-family: var(--ciba-font-heading) !important;
}

/* ── 8. Child-theme page templates ── */
html body.ciba-recipe-page,
html body.ciba-recipe-page *:not([class*="eicon"]):not([class*="fa-"]):not(.dashicons):not(.material-icons):not(.elementor-icon):not(i[class*="fa"]):not(i[class*="eicon"]),
html body.ciba-category-page,
html body.ciba-category-page *:not([class*="eicon"]):not([class*="fa-"]):not(.dashicons):not(.material-icons):not(.elementor-icon):not(i[class*="fa"]):not(i[class*="eicon"]) {
  font-family: var(--ciba-font-body) !important;
}

html body.ciba-recipe-page h1,
html body.ciba-recipe-page h2,
html body.ciba-recipe-page h3,
html body.ciba-recipe-page .banner-h1,
html body.ciba-recipe-page .sh-title,
html body.ciba-recipe-page .card-title,
html body.ciba-recipe-page .modal-title,
html body.ciba-category-page h1,
html body.ciba-category-page h2,
html body.ciba-category-page h3,
html body.ciba-category-page .cm-hero__title,
html body.ciba-category-page .cm-card__name {
  font-family: var(--ciba-font-heading) !important;
}

/* ── 9. Optional decorative accent (uncomment + set selector if needed) ── */
/*
html body .ciba-tagline,
html body #hero-tagline {
  font-family: "Caveat", cursive !important;
}
*/

/* ══════════════════════════════════════════════════════════
   TYPE SCALE — tablet / phone (family force stays above)
   ══════════════════════════════════════════════════════════ */
html {
  font-size: 16px;
}

html body p,
html body li,
html body .elementor-widget-text-editor p {
  font-size: clamp(14px, 1.05vw, 17px);
  line-height: 1.65;
}

#hero-title .elementor-heading-title {
  font-size: clamp(42px, 8vw, 120px) !important;
  line-height: 0.95 !important;
}

html body .ciba-about-title { font-family: var(--ciba-font-heading) !important; }
html body .ciba-about-rtitle { font-family: var(--ciba-font-heading) !important; }
html body .ciba-rv__title { font-family: var(--ciba-font-heading) !important; }
html body .cb-bs-title { font-family: var(--ciba-font-heading) !important; }
html body .ciba-rv__eyebrow {
  font-family: "Caveat", "Brush Script MT", cursive !important;
}

/* Product title type scale */
html body .cm-card-name,
html body .cm-card__name {
  font-size: clamp(1.02rem, 1.15vw, 1.18rem) !important;
  line-height: 1.3 !important;
}

html body .woocommerce div.product .product_title,
html body .single-product .product_title,
html body .elementor-widget-woocommerce-product-title .elementor-heading-title {
  font-size: clamp(28px, 3.2vw, 40px) !important;
  line-height: 1.15 !important;
}

html body .woocommerce-loop-product__title {
  font-size: clamp(15px, 1.2vw, 18px) !important;
  line-height: 1.3 !important;
}

html body .cb-bs-title {
  font-size: clamp(15px, 1.35vw, 20px) !important;
  line-height: 1.3 !important;
}

@media (max-width: 1024px) {
  html { font-size: 15px; }

  #hero-title .elementor-heading-title {
    font-size: clamp(40px, 7.5vw, 84px) !important;
  }

  html body .ciba-about-title { font-size: clamp(36px, 6vw, 64px) !important; }
  html body .ciba-about-rtitle { font-size: 28px !important; }
  html body .ciba-rv__title { font-size: clamp(40px, 7vw, 80px) !important; }

  html body .cm-card-name,
  html body .cm-card__name { font-size: 1rem !important; }

  html body .woocommerce div.product .product_title,
  html body .single-product .product_title,
  html body .elementor-widget-woocommerce-product-title .elementor-heading-title {
    font-size: clamp(26px, 3.6vw, 34px) !important;
  }

  html body .woocommerce-loop-product__title { font-size: 16px !important; }
  html body .cb-bs-title { font-size: 16px !important; }
}

@media (max-width: 767px) {
  html { font-size: 14px; }

  html body p,
  html body li,
  html body .elementor-widget-text-editor p {
    font-size: 15px !important;
    line-height: 1.6 !important;
  }

  html body h1 { font-size: clamp(26px, 8vw, 36px) !important; }
  html body h2 { font-size: clamp(22px, 6.5vw, 30px) !important; }
  html body h3 { font-size: clamp(18px, 5vw, 22px) !important; }

  #hero-title .elementor-heading-title {
    font-size: clamp(32px, 11vw, 48px) !important;
  }

  html body .ciba-about-title { font-size: clamp(32px, 10vw, 46px) !important; }
  html body .ciba-about-rtitle { font-size: clamp(20px, 6vw, 26px) !important; }
  html body .ciba-rv__title { font-size: clamp(32px, 11vw, 52px) !important; }

  html body .cm-card-name,
  html body .cm-card__name {
    font-size: 0.92rem !important;
    line-height: 1.28 !important;
  }

  html body .woocommerce div.product .product_title,
  html body .single-product .product_title,
  html body .elementor-widget-woocommerce-product-title .elementor-heading-title {
    font-size: clamp(22px, 6.2vw, 28px) !important;
    line-height: 1.2 !important;
  }

  html body .woocommerce-loop-product__title {
    font-size: 14px !important;
    line-height: 1.28 !important;
  }

  html body .cb-bs-title { font-size: 14px !important; }
}

@media (max-width: 480px) {
  html body .cm-card-name,
  html body .cm-card__name { font-size: 0.86rem !important; }

  html body .woocommerce div.product .product_title,
  html body .single-product .product_title,
  html body .elementor-widget-woocommerce-product-title .elementor-heading-title {
    font-size: clamp(20px, 6.5vw, 24px) !important;
  }

  html body .woocommerce-loop-product__title { font-size: 13px !important; }
  html body .cb-bs-title { font-size: 13px !important; }
}

@media (max-width: 480px) {
  #hero-title .elementor-heading-title {
    font-size: clamp(28px, 12vw, 38px) !important;
  }
}

/* ══════════════════════════════════════════════════════════
   ICON SHIELD — must stay last; restores icon font families
   ══════════════════════════════════════════════════════════ */

/* Elementor icons */
html body i.eicon,
html body i[class*="eicon-"],
html body [class^="eicon-"]::before,
html body [class*=" eicon-"]::before,
html body .elementor-icon i,
html body .elementor-icon i::before,
html body .elementor-icon-list-icon i,
html body .elementor-icon-list-icon i::before,
html body .elementor-social-icon i,
html body .elementor-social-icon i::before,
html body .elementor-widget-icon .elementor-icon,
html body .elementor-widget-icon .elementor-icon i,
html body .elementor-menu-toggle i,
html body .elementor-search-form__icon i {
  font-family: "eicons" !important;
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  line-height: 1 !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Font Awesome */
html body .fa,
html body .fas,
html body .far,
html body .fal,
html body .fab,
html body .fa-solid,
html body .fa-regular,
html body .fa-brands,
html body i[class*="fa-"],
html body i[class*="fa-"]::before,
html body [class*="fa-"]::before,
html body [class*="fa-"]::after {
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome" !important;
  font-style: normal !important;
  font-weight: 900 !important;
}

html body .far,
html body .fa-regular,
html body i[class*="fa-regular"] {
  font-weight: 400 !important;
}

html body .fab,
html body .fa-brands,
html body i[class*="fa-brands"],
html body i[class*="fab"] {
  font-family: "Font Awesome 6 Brands", "Font Awesome 5 Brands" !important;
  font-weight: 400 !important;
}

/* WordPress dashicons */
html body .dashicons,
html body .dashicons::before,
html body #wpadminbar .ab-icon::before,
html body #wpadminbar .ab-item::before {
  font-family: dashicons !important;
  font-style: normal !important;
  font-weight: 400 !important;
}

/* Material icons */
html body .material-icons {
  font-family: "Material Icons" !important;
  font-style: normal !important;
  font-weight: 400 !important;
}

/* WooCommerce star ratings */
html body .woocommerce .star-rating,
html body .woocommerce .star-rating::before,
html body .woocommerce .star-rating span,
html body .woocommerce .star-rating span::before,
html body .star-rating,
html body .star-rating::before,
html body .star-rating span::before {
  font-family: star !important;
  font-style: normal !important;
  font-weight: 400 !important;
}

/* SVG / image icons inside icon wrappers — never touch */
html body .elementor-icon svg,
html body .elementor-icon-list-icon svg,
html body .elementor-social-icon svg {
  font-family: unset !important;
}
