/*
 * IY Fitness typography and spacing system.
 * Loaded after the structural stylesheet so type hierarchy remains consistent
 * across the homepage, catalog, product, company and inquiry pages.
 */

:root {
  --iy-type-display: clamp(58px, 5.1vw, 80px);
  --iy-type-page-title: clamp(48px, 4.2vw, 64px);
  --iy-type-product-title: clamp(42px, 3.5vw, 56px);
  --iy-type-section-title: clamp(36px, 3.15vw, 48px);
  --iy-type-feature-title: clamp(40px, 3.45vw, 52px);
  --iy-type-body-lg: 17px;
  --iy-tracking-display: -0.045em;
  --iy-tracking-heading: -0.035em;
}

body {
  font-size: 16px;
  line-height: 1.62;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.iy-nav a,
.iy-header__quote {
  letter-spacing: 0.065em;
}

.iy-eyebrow {
  margin-bottom: 13px;
  letter-spacing: 0.14em;
  line-height: 1.5;
}

.iy-display {
  max-width: 720px;
  font-size: var(--iy-type-display);
  line-height: 0.98;
  letter-spacing: var(--iy-tracking-display);
}

.iy-hero {
  padding-top: 42px;
}

.iy-hero__grid {
  min-height: 550px;
}

.iy-hero__copy {
  max-width: 560px;
  margin-top: 24px;
  font-size: 18px;
  line-height: 1.62;
}

.iy-section,
.iy-featured {
  padding-block: 96px;
}

.iy-catalog-intro {
  padding: 88px 0 38px;
}

.iy-section-head {
  margin-bottom: 42px;
}

.iy-section-head h2,
.iy-section h2 {
  font-size: var(--iy-type-section-title);
  line-height: 1.06;
  letter-spacing: var(--iy-tracking-heading);
}

.iy-section-head p:last-child,
.iy-about-intro,
.iy-contact-copy {
  font-size: var(--iy-type-body-lg);
  line-height: 1.65;
}

.iy-partner h2 {
  font-size: var(--iy-type-feature-title);
  line-height: 1.04;
  letter-spacing: var(--iy-tracking-heading);
}

.iy-partner p {
  margin-top: 22px;
  font-size: var(--iy-type-body-lg);
  line-height: 1.65;
}

.iy-route strong {
  font-size: 19px;
  line-height: 1.25;
}

.iy-home-cta {
  padding-block: 72px;
}

.iy-home-cta h2,
.iy-cta h2 {
  font-size: clamp(38px, 3.7vw, 56px);
  line-height: 1.04;
  letter-spacing: var(--iy-tracking-heading);
}

.iy-page-hero {
  padding: 86px 0 78px;
}

.iy-page-hero h1 {
  max-width: 980px;
  font-size: var(--iy-type-page-title);
  line-height: 1.02;
  letter-spacing: var(--iy-tracking-display);
}

.iy-page-hero p:last-child {
  max-width: 700px;
  margin-top: 22px;
  font-size: var(--iy-type-body-lg);
  line-height: 1.65;
}

.iy-card h3 {
  font-size: 23px;
  line-height: 1.18;
  letter-spacing: -0.025em;
}

.iy-process__item h3 {
  font-size: 20px;
  line-height: 1.2;
}

.iy-catalog-head {
  padding: 64px 0 54px;
}

.iy-catalog-head h1 {
  max-width: 820px;
  font-size: var(--iy-type-page-title);
  line-height: 1.02;
  letter-spacing: var(--iy-tracking-display);
}

.iy-catalog-head p:last-child {
  font-size: var(--iy-type-body-lg);
  line-height: 1.62;
}

.iy-catalog-summary strong {
  font-size: 46px;
  letter-spacing: -0.045em;
}

.iy-inquiry-card h2 {
  font-size: 18px;
  line-height: 1.28;
  letter-spacing: -0.02em;
}

.iy-product {
  padding: 64px 0 96px;
}

.iy-product__summary h1 {
  max-width: 650px;
  margin-bottom: 18px;
  font-size: var(--iy-type-product-title);
  line-height: 1.04;
  letter-spacing: var(--iy-tracking-display);
}

.iy-product__intro {
  font-size: 16px;
  line-height: 1.68;
}

.iy-product__summary .iy-product__inquiry strong {
  font-size: 17px;
  line-height: 1.4;
}

.iy-product-detail {
  margin-top: 60px;
}

.iy-product-detail h2 {
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: -0.035em;
}

.iy-form-panel h2 {
  font-size: 34px;
  line-height: 1.1;
  letter-spacing: -0.035em;
}

@media (max-width: 1120px) {
  :root {
    --iy-type-display: clamp(54px, 7vw, 68px);
    --iy-type-page-title: clamp(46px, 6vw, 56px);
    --iy-type-product-title: clamp(40px, 5.4vw, 48px);
    --iy-type-section-title: clamp(34px, 4.8vw, 44px);
    --iy-type-feature-title: clamp(38px, 5.2vw, 48px);
  }

  .iy-section,
  .iy-featured {
    padding-block: 82px;
  }
}

@media (max-width: 680px) {
  :root {
    --iy-type-display: clamp(42px, 11.8vw, 46px);
    --iy-type-page-title: clamp(38px, 10.5vw, 42px);
    --iy-type-product-title: clamp(35px, 9.8vw, 39px);
    --iy-type-section-title: clamp(31px, 8.7vw, 35px);
    --iy-type-feature-title: clamp(34px, 9.4vw, 38px);
  }

  .iy-eyebrow {
    font-size: 10px;
    letter-spacing: 0.13em;
  }

  .iy-display {
    line-height: 1;
    letter-spacing: -0.04em;
  }

  .iy-hero__grid {
    padding-top: 44px;
  }

  .iy-hero__copy {
    margin-top: 20px;
    font-size: 16px;
  }

  .iy-section,
  .iy-featured {
    padding-block: 64px;
  }

  .iy-catalog-intro {
    padding: 62px 0 28px;
  }

  .iy-section-head {
    margin-bottom: 32px;
  }

  .iy-section-head h2,
  .iy-section h2,
  .iy-partner h2 {
    line-height: 1.08;
  }

  .iy-section-head p:last-child,
  .iy-about-intro,
  .iy-contact-copy,
  .iy-partner p,
  .iy-page-hero p:last-child,
  .iy-catalog-head p:last-child {
    font-size: 16px;
  }

  .iy-home-cta,
  .iy-cta {
    padding-block: 58px;
  }

  .iy-home-cta h2,
  .iy-cta h2 {
    font-size: clamp(34px, 9.4vw, 38px);
    line-height: 1.08;
  }

  .iy-page-hero {
    padding: 62px 0 58px;
  }

  .iy-page-hero h1,
  .iy-catalog-head h1,
  .iy-product__summary h1 {
    line-height: 1.04;
    letter-spacing: -0.04em;
  }

  .iy-catalog-head {
    padding: 58px 0 42px;
  }

  .iy-product {
    padding: 42px 0 68px;
  }

  .iy-product-detail {
    margin-top: 48px;
  }

  .iy-product-detail h2 {
    font-size: 28px;
  }

  .iy-card h3 {
    font-size: 21px;
  }

  .iy-inquiry-card h2 {
    font-size: 15px;
    line-height: 1.3;
    letter-spacing: -0.015em;
  }

  .iy-form-panel h2 {
    font-size: 30px;
  }
}
