/* HIBO V1.14.53 — GLOBAL TYPOGRAPHY SYSTEM
   Visual target: compact Sapo-like commerce typography.
   Technical implementation: Google Sans Flex loaded from Google Fonts.
   This file is intentionally loaded after page-specific CSS. */

:root {
  --hibo-font-family: "Google Sans Flex", Arial, sans-serif;

  --hibo-fs-2xs: 11px;
  --hibo-fs-xs: 12px;
  --hibo-fs-sm: 13px;
  --hibo-fs-base: 14px;
  --hibo-fs-md: 15px;
  --hibo-fs-lg: 16px;
  --hibo-fs-xl: 18px;
  --hibo-fs-2xl: 20px;
  --hibo-fs-3xl: 24px;
  --hibo-fs-4xl: 26px;

  --hibo-fw-regular: 400;
  --hibo-fw-medium: 500;
  --hibo-fw-semibold: 600;
  --hibo-fw-bold: 700;

  --hibo-lh-tight: 1.25;
  --hibo-lh-ui: 1.4;
  --hibo-lh-body: 1.55;
}

html {
  font-size: 16px;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--hibo-font-family) !important;
  font-optical-sizing: auto;
  font-size: var(--hibo-fs-base) !important;
  font-weight: var(--hibo-fw-regular);
  font-style: normal;
  line-height: var(--hibo-lh-body);
  letter-spacing: 0;
}

/* Form/UI controls must not fall back to browser/system fonts. */
button,
input,
select,
textarea,
optgroup,
option {
  font-family: var(--hibo-font-family) !important;
  font-size: var(--hibo-fs-base);
  font-optical-sizing: auto;
}

button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  font-weight: var(--hibo-fw-semibold);
}

/* Shared text rhythm. */
p,
li,
label,
td,
th,
dd,
dt {
  line-height: var(--hibo-lh-body);
}

small,
.small {
  font-size: var(--hibo-fs-xs) !important;
  line-height: var(--hibo-lh-ui);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--hibo-font-family) !important;
  font-optical-sizing: auto;
  color: inherit;
  line-height: var(--hibo-lh-tight);
  font-weight: var(--hibo-fw-bold);
  letter-spacing: 0;
}

h1 { font-size: var(--hibo-fs-4xl); }
h2 { font-size: var(--hibo-fs-3xl); }
h3 { font-size: var(--hibo-fs-xl); }
h4 { font-size: var(--hibo-fs-lg); }
h5 { font-size: var(--hibo-fs-md); }
h6 { font-size: var(--hibo-fs-base); }

/* Header */
.announcement-bar,
.site-announcement,
.header-announcement {
  font-size: var(--hibo-fs-2xs) !important;
  line-height: 1.35 !important;
  font-weight: var(--hibo-fw-semibold) !important;
}

.header-search input,
.header-search button,
.search-block input,
.left-search input {
  font-size: var(--hibo-fs-base) !important;
  line-height: var(--hibo-lh-ui) !important;
}

.header-actions,
.header-phone,
.header-action {
  font-size: var(--hibo-fs-xs) !important;
}

.header-action-copy small {
  font-size: var(--hibo-fs-2xs) !important;
  font-weight: var(--hibo-fw-regular) !important;
}

.header-action-copy strong {
  font-size: var(--hibo-fs-sm) !important;
  font-weight: var(--hibo-fw-bold) !important;
}

.desktop-nav .nav-item > a,
#menu_pc > li > a {
  font-size: var(--hibo-fs-base) !important;
  font-weight: var(--hibo-fw-semibold) !important;
  line-height: 1.2 !important;
}

.catalog-mega,
.simple-dropdown,
.catalog-mega a,
.simple-dropdown a {
  font-size: var(--hibo-fs-base);
}

/* Breadcrumbs + metadata */
.breadcrumbs,
.breadcrumb,
.hibo-breadcrumbs,
.hibo-breadcrumbs a,
.hibo-breadcrumbs span {
  font-size: var(--hibo-fs-xs) !important;
  line-height: 1.4 !important;
}

/* Shared section titles */
.hibo-section-head h2,
.section-title h2,
.hibo-blog-section-title,
.hibo-collection-sidebar-block > h2 {
  font-size: var(--hibo-fs-2xl) !important;
  font-weight: var(--hibo-fw-bold) !important;
  line-height: var(--hibo-lh-tight) !important;
}

/* Product cards */
.product-card,
.hibo-product-card {
  font-size: var(--hibo-fs-base);
}

.product-card-title,
.product-card-title a,
.hibo-product-card .product-card-title,
.hibo-product-card .product-card-title a {
  font-size: var(--hibo-fs-base) !important;
  font-weight: var(--hibo-fw-medium) !important;
  line-height: 1.42 !important;
}

.product-price-row,
.product-price-row .sale-price,
.product-card .sale-price {
  font-size: var(--hibo-fs-lg) !important;
  line-height: 1.3 !important;
  font-weight: var(--hibo-fw-bold) !important;
}

.product-price-row del,
.product-card del,
.discount-inline,
.saving-text,
.product-card-promo {
  font-size: var(--hibo-fs-xs) !important;
  line-height: 1.4 !important;
}

/* Collection */
.hibo-collection-page,
.hibo-collection-sidebar,
.hibo-collection-main,
.hibo-collection-sortbar,
.hibo-collection-sort-form button,
.hibo-collection-filter,
.catalog-filter-sidebar {
  font-size: var(--hibo-fs-base);
}

.hibo-collection-child-card strong,
.hibo-collection-sidebar-menu a {
  font-size: var(--hibo-fs-sm) !important;
  line-height: 1.4 !important;
  font-weight: var(--hibo-fw-medium) !important;
}

.hibo-collection-sortbar > strong,
.hibo-collection-sort-form button {
  font-size: var(--hibo-fs-sm) !important;
  font-weight: var(--hibo-fw-semibold) !important;
}

.hibo-collection-description,
.hibo-collection-description .rte {
  font-size: var(--hibo-fs-md) !important;
  line-height: 1.65 !important;
}

/* Product detail */
.hibo-product-page {
  font-size: var(--hibo-fs-base);
}

.hibo-product-head h1 {
  font-size: var(--hibo-fs-3xl) !important;
  font-weight: var(--hibo-fw-bold) !important;
  line-height: 1.28 !important;
}

.hibo-product-summary h2,
.hibo-product-promotions h2,
.hibo-product-variants h2 {
  font-size: var(--hibo-fs-lg) !important;
  font-weight: var(--hibo-fw-bold) !important;
}

.hibo-product-price strong {
  font-size: var(--hibo-fs-3xl) !important;
  font-weight: var(--hibo-fw-bold) !important;
  line-height: 1.2 !important;
}

.hibo-product-price del,
.hibo-product-discount {
  font-size: var(--hibo-fs-sm) !important;
}

.hibo-product-page .rte,
.hibo-product-description,
.hibo-product-content {
  font-size: var(--hibo-fs-md) !important;
  line-height: 1.65 !important;
}

.hibo-product-page .rte h2,
.hibo-product-description h2,
.hibo-product-content h2 {
  font-size: var(--hibo-fs-2xl) !important;
}

.hibo-product-page .rte h3,
.hibo-product-description h3,
.hibo-product-content h3 {
  font-size: var(--hibo-fs-xl) !important;
}

/* Blog */
.hibo-blog-page {
  font-size: var(--hibo-fs-base);
}

.hibo-blog-section-title {
  font-size: var(--hibo-fs-2xl) !important;
}

.article-card h2,
.article-card h3,
.hibo-article-card h2,
.hibo-article-card h3 {
  font-size: var(--hibo-fs-md) !important;
  font-weight: var(--hibo-fw-semibold) !important;
  line-height: 1.4 !important;
}

.hibo-blog-featured .article-card h2,
.hibo-blog-featured .article-card h3,
.hibo-blog-featured .hibo-article-card h2,
.hibo-blog-featured .hibo-article-card h3 {
  font-size: var(--hibo-fs-xl) !important;
}

.hibo-blog-description,
.article-excerpt,
.article-card-excerpt {
  font-size: var(--hibo-fs-base) !important;
  line-height: 1.6 !important;
}

.hibo-blog-topic-copy strong {
  font-size: var(--hibo-fs-base) !important;
  font-weight: var(--hibo-fw-semibold) !important;
}

.hibo-blog-topic-copy small {
  font-size: var(--hibo-fs-xs) !important;
}

/* Contact, pages, cart, checkout */
.hibo-contact-page,
.page-content,
.cart-page,
.checkout-page,
.order-success-page {
  font-size: var(--hibo-fs-base);
}

.rte {
  font-family: var(--hibo-font-family) !important;
  font-size: var(--hibo-fs-md);
  line-height: 1.65;
}

.rte h1 { font-size: var(--hibo-fs-4xl); }
.rte h2 { font-size: var(--hibo-fs-2xl); }
.rte h3 { font-size: var(--hibo-fs-xl); }
.rte h4 { font-size: var(--hibo-fs-lg); }

/* Footer */
.site-footer,
footer,
.site-footer a,
footer a {
  font-family: var(--hibo-font-family) !important;
  font-size: var(--hibo-fs-base);
  line-height: 1.55;
}

.site-footer h2,
.site-footer h3,
.site-footer h4,
footer h2,
footer h3,
footer h4 {
  font-size: var(--hibo-fs-lg) !important;
  font-weight: var(--hibo-fw-bold) !important;
}

/* Utility UI */
.pagination,
.hibo-pagination,
.hibo-collection-pagination,
.contact-dock,
.hibo-mobile-bottom-nav {
  font-size: var(--hibo-fs-xs);
}

.hibo-customer-review-quote {
  font-family: var(--hibo-font-family) !important;
}

/* Mobile keeps the same scale, only large headings step down. */
@media (max-width: 767px) {
  body {
    font-size: var(--hibo-fs-base) !important;
  }

  h1 { font-size: var(--hibo-fs-3xl); }
  h2 { font-size: var(--hibo-fs-2xl); }
  h3 { font-size: var(--hibo-fs-lg); }

  .hibo-product-head h1 {
    font-size: var(--hibo-fs-xl) !important;
    line-height: 1.3 !important;
  }

  .hibo-product-price strong {
    font-size: var(--hibo-fs-2xl) !important;
  }

  .hibo-section-head h2,
  .section-title h2,
  .hibo-blog-section-title,
  .hibo-collection-sidebar-block > h2 {
    font-size: var(--hibo-fs-xl) !important;
  }

  .product-card-title,
  .product-card-title a {
    font-size: var(--hibo-fs-sm) !important;
  }

  .product-price-row,
  .product-price-row .sale-price,
  .product-card .sale-price {
    font-size: var(--hibo-fs-md) !important;
  }

  .hibo-mobile-bottom-nav {
    font-size: var(--hibo-fs-2xs) !important;
  }
}
