/*
 * SmartMarudu v0.10.5 — Global Typography Foundation
 * Scope: public platform, directory/business profiles, Owner Apps, guest/login,
 * Panel Owner, Panel SmartMarudu and Panel SmartApps.
 *
 * Desktop hierarchy:
 * 64 Display / 44 H1 / 34 H2 / 26 H3 / 22 Card / 20 Lead /
 * 18 Body / 17 Card copy + controls / 16 minimum UI text.
 *
 * Mobile hierarchy:
 * 44 Display / 36 H1 / 30 H2 / 24 H3 / 21 Card / 19 Lead /
 * 17 Body / 16 Card copy + controls / 16 minimum UI text.
 */
:root{
  --sm-font-display:64px;
  --sm-font-h1:44px;
  --sm-font-h2:34px;
  --sm-font-h3:26px;
  --sm-font-card:22px;
  --sm-font-price:28px;
  --sm-font-stat:34px;
  --sm-font-lead:20px;
  --sm-font-body:18px;
  --sm-font-card-copy:17px;
  --sm-font-control:17px;
  --sm-font-nav:16px;
  --sm-font-label:16px;
  --sm-font-meta:16px;
  --sm-font-footer:16px;
  --sm-leading-display:1.06;
  --sm-leading-heading:1.18;
  --sm-leading-card:1.30;
  --sm-leading-body:1.65;
  --sm-leading-compact:1.45;

  /* Compatibility with the earlier SmartMarudu token layer. */
  --type-display:var(--sm-font-display);
  --type-h1:var(--sm-font-h1);
  --type-h2:var(--sm-font-h2);
  --type-h3:var(--sm-font-h3);
  --type-card:var(--sm-font-card);
  --type-body:var(--sm-font-body);
  --type-small:var(--sm-font-meta);
  --type-label:var(--sm-font-label);
  --type-nav:var(--sm-font-nav);
  --type-button:var(--sm-font-control);
  --type-stat:var(--sm-font-stat);
}

html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:var(--sm-font-body)!important;line-height:var(--sm-leading-body)!important}

/* Normal readable copy. */
body :where(p,li,dd,dt,td,th){
  font-size:var(--sm-font-body)!important;
  line-height:var(--sm-leading-body)!important;
}

/* Global heading levels. */
body h1{font-size:var(--sm-font-h1)!important;line-height:var(--sm-leading-heading)!important}
body h2{font-size:var(--sm-font-h2)!important;line-height:var(--sm-leading-heading)!important}
body h3{font-size:var(--sm-font-h3)!important;line-height:1.24!important}

/* Main hero/display treatment across SmartMarudu public + Owner surfaces. */
body:not(.panel-body) :is(
  .hero,.market-hero,.directory-hero,.directory-hero-modern,.standalone-hero,.sm-owner-hero,
  .stay-hero,.property-hero,.clinic-hero,.event-hero,.car-hero,.fix-hero,.move-hero,.si-hero,
  .tee-hero,.photo-standard-hero
) h1{
  font-size:var(--sm-font-display)!important;
  line-height:var(--sm-leading-display)!important;
  letter-spacing:-.045em!important;
}

/* Page titles remain below display scale. */
body :is(.page-head,.profile-intro,.standalone-intro,.auth-copy,.owner-welcome-copy) h1{
  font-size:var(--sm-font-h1)!important;
  line-height:var(--sm-leading-heading)!important;
}

/* Section headings. */
body :is(.section-head,.market-section-head,.owner-section-title,.form-section-head) h2,
body :is(.upgrade-strip,.market-owner-cta,.cta) h2{
  font-size:var(--sm-font-h2)!important;
  line-height:var(--sm-leading-heading)!important;
}

/* Card/module titles use a dedicated tier rather than full H2/H3 size. */
body :is(
  .card,.module-card,.listing-card,.price-card,.service-card,.owner-stat-card,.owner-action-card,
  .owner-editor-card,.owner-editor-hub-card,.owner-package-card,.dashboard-main-card,.auth-card
) :is(h2,h3,.card-title),
body :is(.market-listing-body,.market-category-card,.manager-list) :is(h2,h3,b){
  font-size:var(--sm-font-card)!important;
  line-height:var(--sm-leading-card)!important;
}

/* Intro / lead copy. */
body :is(
  .hero,.market-hero,.directory-hero,.directory-hero-modern,.standalone-hero,.sm-owner-hero,
  .stay-hero,.property-hero,.clinic-hero,.event-hero,.car-hero,.fix-hero,.move-hero,.si-hero,
  .tee-hero,.photo-standard-hero
) p,
body :is(.lead,.intro,.section-intro,.sm-owner-hero-desc){
  font-size:var(--sm-font-lead)!important;
  line-height:1.58!important;
}

/* Secondary/card descriptions. */
body :is(
  .card,.module-card,.listing-card,.price-card,.service-card,.owner-action-card,.owner-editor-hub-card,
  .market-listing-body,.market-category-card,.form-section-head
) p{
  font-size:var(--sm-font-card-copy)!important;
  line-height:1.62!important;
}

/* Controls. Mobile keeps 16px to prevent browser zoom and preserve tap readability. */
body :is(button,.btn,input,select,textarea){
  font-size:var(--sm-font-control)!important;
}
body :is(button,.btn){line-height:1.3!important}
body :is(input,select,textarea){line-height:1.5!important}

/* Navigation and form labels. */
body :is(
  nav a,.mainnav a,.sidebar-nav a,.public-header nav a,.business-header nav a,
  .owner-app-mobile-nav a,.mobile-bottom-nav a
){font-size:var(--sm-font-nav)!important;line-height:var(--sm-leading-compact)!important}
body :is(label,.media-picker-label,.contact-info-label,.service-category-label){
  font-size:var(--sm-font-label)!important;
  line-height:var(--sm-leading-compact)!important;
}

/* Metadata is the smallest visible text tier. */
body :is(
  small,.small,.eyebrow,.section-kicker,.badge,.tag,.chip,.field-help,.version-chip,
  .panel-topbar-kicker,.package-eyebrow,.property-eyebrow,.move-kicker,.sm-owner-hero-kicker,
  .sm-owner-section-kicker,.package-meta-row,.profile-meta-row,.property-meta,.tee-product-meta,
  .sm-package-price-note,.booking-form-note,.sidebar-brand-copy small,.sidebar-user small
){
  font-size:var(--sm-font-meta)!important;
  line-height:var(--sm-leading-compact)!important;
}

/* Price / highlighted financial values. */
body :is(
  .price-highlight b,.package-price-big,.service-price,.sm-package-price,.booking-summary-price,
  .booking-related-price,.owner-mini-price,.owner-service-price,.price
){
  font-size:var(--sm-font-price)!important;
  line-height:1.18!important;
  letter-spacing:-.025em;
}

/* Metrics/statistics. */
body :is(.stat b,.metric b,.number,.count,.owner-stat-card b){
  font-size:var(--sm-font-stat)!important;
  line-height:1.15!important;
}

/* Footer text is never treated as fine print. */
body :is(footer,footer p,footer a,footer small,.panel-footer,.sm-standard-footer,.owner-app-footer){
  font-size:var(--sm-font-footer)!important;
  line-height:1.55!important;
}

/* Minimum 16px guardrail is enforced by the tokens above and by the legacy CSS normalization in this release. */

@media(max-width:760px){
  :root{
    --sm-font-display:44px;
    --sm-font-h1:36px;
    --sm-font-h2:30px;
    --sm-font-h3:24px;
    --sm-font-card:21px;
    --sm-font-price:25px;
    --sm-font-stat:30px;
    --sm-font-lead:19px;
    --sm-font-body:17px;
    --sm-font-card-copy:16px;
    --sm-font-control:16px;
    --sm-font-nav:16px;
    --sm-font-label:16px;
    --sm-font-meta:16px;
    --sm-font-footer:16px;
  }
}
