* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  color: var(--text);
  font-family: var(--font-body);
  font-size: var(--type-body-mobile);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-line);
  background: var(--bg);
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: var(--brand-strong);
  text-decoration: none;
}

/* Never underline buttons or links on hover/focus states. */
:where(
  a:hover,
  a:focus-visible,
  button:hover,
  button:focus-visible,
  [role="button"]:hover,
  [role="button"]:focus-visible,
  input[type="button"]:hover,
  input[type="button"]:focus-visible,
  input[type="submit"]:hover,
  input[type="submit"]:focus-visible,
  input[type="reset"]:hover,
  input[type="reset"]:focus-visible
) {
  text-decoration: none !important;
  text-decoration-line: none !important;
}

h1,
h2,
h3 {
  margin: 0;
  line-height: 1.2;
  font-family: var(--font-heading);
  color: var(--text);
}

h1 {
  font-size: var(--type-h1-size);
}

h2 {
  font-size: var(--type-h2-size);
}

h3 {
  font-size: var(--type-h3-size);
}

.font-display,
.__className_e319f2,
h4,
h5,
h6 {
  font-family: var(--font-display);
}

body.__className_2bbf5b {
  font-family: var(--font-body);
}

.type-hero-title {
  font-family: var(--font-display);
  font-size: var(--type-hero-mobile);
  font-weight: var(--type-hero-weight);
  line-height: var(--type-hero-line);
  letter-spacing: var(--type-hero-spacing);
}

.type-hero-subtitle {
  font-family: var(--font-display);
  font-size: var(--type-hero-subtitle-mobile);
  font-weight: var(--type-hero-subtitle-weight);
  line-height: var(--type-hero-subtitle-line);
  letter-spacing: var(--type-hero-subtitle-spacing);
}

.type-section-title,
.type-subsection-title {
  font-family: var(--font-display);
  font-size: var(--type-section-mobile);
  font-weight: var(--type-section-weight);
  line-height: var(--type-section-line);
  letter-spacing: var(--type-section-spacing);
}

.type-card-title {
  font-family: var(--font-display);
  font-size: var(--type-card-mobile);
  font-weight: var(--type-card-weight);
  line-height: var(--type-card-line);
  letter-spacing: var(--type-card-spacing);
}

.type-lead {
  font-family: var(--font-display);
  font-size: var(--type-lead-mobile);
  font-weight: var(--type-lead-weight);
  line-height: var(--type-lead-line);
}

.type-body {
  font-family: var(--font-body);
  font-size: var(--type-body-mobile);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-line);
}

.type-small {
  font-family: var(--font-body);
  font-size: var(--type-small-mobile);
  font-weight: var(--type-small-weight);
  line-height: var(--type-small-line);
}

.type-label {
  font-family: var(--font-body);
  font-size: var(--type-label-mobile);
  font-weight: var(--type-label-weight);
  line-height: var(--type-label-line);
  letter-spacing: var(--type-label-spacing);
}

.type-cta {
  font-family: var(--font-body);
  font-size: var(--type-cta-mobile);
  font-weight: var(--type-cta-weight);
  line-height: var(--type-cta-line);
  letter-spacing: var(--type-cta-spacing);
}

.type-nav {
  font-family: var(--font-display);
  font-size: var(--type-nav-mobile);
  font-weight: var(--type-nav-weight);
  line-height: var(--type-nav-line);
  letter-spacing: var(--type-nav-spacing);
}

.type-input {
  font-family: var(--font-body);
  font-size: var(--type-input-mobile);
  line-height: 1.35;
}

/* Public typography contract: use these semantic classes + tokens, avoid inline size utilities in Blade. */

.type-page-h1 {
  font-family: var(--font-display);
  font-size: var(--type-page-h1-mobile);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: var(--tracking-tight);
}

.type-page-h2 {
  font-family: var(--font-display);
  font-size: var(--type-page-h2-mobile);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: var(--tracking-tight);
}

.type-page-h3 {
  font-family: var(--font-display);
  font-size: var(--type-page-h3-mobile);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: var(--tracking-tight);
}

.type-page-copy {
  font-family: var(--font-body);
  font-size: var(--type-page-copy-mobile);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-line);
}

.type-page-meta {
  font-family: var(--font-body);
  font-size: var(--type-page-meta-mobile);
  font-weight: 500;
  line-height: 1.4;
}

.type-agent-name {
  font-family: var(--font-display);
  font-size: var(--type-agent-name-mobile);
  font-weight: 600;
  line-height: 1.04;
}

.type-testimonial-title {
  font-family: var(--font-display);
  font-size: var(--type-testimonial-title-mobile);
  font-weight: 700;
  line-height: 1.05;
}

.type-testimonial-subtitle {
  font-family: var(--font-body);
  font-size: var(--type-testimonial-subtitle-mobile);
  font-weight: 600;
  line-height: 1.2;
}

@media (min-width: 768px) {
  body {
    font-size: var(--type-body-desktop);
  }

  .type-hero-title {
    font-size: var(--type-hero-desktop);
  }

  .type-hero-subtitle {
    font-size: var(--type-hero-subtitle-desktop);
  }

  .type-section-title,
  .type-subsection-title {
    font-size: var(--type-section-desktop);
  }

  .type-card-title {
    font-size: var(--type-card-desktop);
  }

  .type-lead {
    font-size: var(--type-lead-desktop);
  }

  .type-body {
    font-size: var(--type-body-desktop);
  }

  .type-small {
    font-size: var(--type-small-desktop);
  }

  .type-label {
    font-size: var(--type-label-desktop);
  }

  .type-cta {
    font-size: var(--type-cta-desktop);
  }

  .type-nav {
    font-size: var(--type-nav-desktop);
  }

  .type-input {
    font-size: var(--type-input-desktop);
  }

  .type-page-h1 {
    font-size: var(--type-page-h1-desktop);
  }

  .type-page-h2 {
    font-size: var(--type-page-h2-desktop);
  }

  .type-page-h3 {
    font-size: var(--type-page-h3-desktop);
  }

  .type-page-copy {
    font-size: var(--type-page-copy-desktop);
  }

  .type-page-meta {
    font-size: var(--type-page-meta-desktop);
  }

  .type-agent-name {
    font-size: var(--type-agent-name-desktop);
  }

  .type-testimonial-title {
    font-size: var(--type-testimonial-title-desktop);
  }

  .type-testimonial-subtitle {
    font-size: var(--type-testimonial-subtitle-desktop);
  }

  .header-utility-icon {
    width: var(--header-utility-icon-size-desktop);
    height: var(--header-utility-icon-size-desktop);
  }

  .header-utility-icon--heart {
    font-size: calc(var(--header-utility-icon-size-desktop) - 1px);
  }

  .header-utility-icon--user {
    width: var(--header-utility-icon-size-desktop);
    height: var(--header-utility-icon-size-desktop);
  }

  .header-contact-chip {
    min-height: var(--header-contact-chip-height-desktop);
    gap: var(--header-contact-chip-gap-desktop);
    padding-inline: var(--header-contact-chip-padding-x-desktop);
  }

  .header-contact-chip__icon {
    font-size: var(--header-contact-chip-icon-size-desktop);
  }

  .header-contact-chip__text {
    font-size: var(--header-contact-chip-text-size-desktop);
  }

  .header-utility-shell > a.glass-header-chip {
    width: var(--header-utility-button-size-desktop);
    height: var(--header-utility-button-size-desktop);
  }
}

.header-utility-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--header-utility-icon-size-mobile);
  height: var(--header-utility-icon-size-mobile);
  color: #eef2f9;
  line-height: 1;
}

.header-utility-icon--heart {
  font-size: calc(var(--header-utility-icon-size-mobile) - 1px);
  font-weight: 500;
  transform: translateY(-0.5px);
}

.header-utility-icon--user {
  width: var(--header-utility-icon-size-mobile);
  height: var(--header-utility-icon-size-mobile);
}

.header-contact-chip {
  min-height: var(--header-contact-chip-height-mobile);
  gap: var(--header-contact-chip-gap-mobile);
  padding-inline: var(--header-contact-chip-padding-x-mobile);
}

.header-contact-chip__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1em;
  font-size: var(--header-contact-chip-icon-size-mobile);
  line-height: 1;
}

.header-contact-chip__text {
  font-size: var(--header-contact-chip-text-size-mobile);
  line-height: 1.15;
}

.header-utility-shell > a.glass-header-chip {
  width: var(--header-utility-button-size-mobile);
  height: var(--header-utility-button-size-mobile);
}
