/* Utilfreds typographic alignment · 6.10.188
 * Intentional type scale, scoped to platform pages. Preserve spacing, colors,
 * graphics and interaction. Do NOT reset content inside Google identity iframe.
 * Sizes under 12px may remain only within purely illustrative scaled graphics.
 */

/* Shared fundamentals */
.uf-site,
.pk-page,
.ufm-account { font-family: var(--uf-type-family, "Inter", system-ui, sans-serif); }

.uf-site :is(button, input, select, textarea),
.pk-page :is(button, input, select, textarea),
.ufm-account :is(button, input, select, textarea) {
  font-family: inherit;
}

.uf-site :is(.uf-eyebrow, .uf-kicker),
.pk-page :is(.pk-eyebrow, .pkm-eyebrow),
.ufm-account .ufm-eyebrow {
  font-size: var(--uf-type-meta);
  line-height: 1.5;
}

/* The original Georgia accent is deliberately retained only on emphasized
 * price-section words. All normal running copy remains Inter. */

/* Public hero: readable, predictable hierarchy at all breakpoints. */
.pk-front-page .uf-hero h1 {
  font-size: clamp(44px, 5.3vw, 70px);
  line-height: 1.05;
  letter-spacing: -.052em;
}
.pk-front-page .uf-hero__lead {
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.65;
}
.pk-front-page .uf-hero__individual-note {
  font-size: 14px;
  line-height: 1.6;
}
.uf-site .uf-button {
  font-size: var(--uf-type-control);
  line-height: 1.35;
  font-weight: 700;
  text-wrap: pretty;
}

/* Home journey: informational UI must not be set in 7–9px text. */
.pk-front-page .uf-hero-journey__top,
.pk-front-page .uf-hero-journey__meta,
.pk-front-page .uf-hero-journey__meta strong {
  font-size: 11px;
  line-height: 1.35;
}
.pk-front-page .uf-hero-journey__hint,
.pk-front-page .uf-hero-journey__signal {
  font-size: 10px;
  line-height: 1.35;
  white-space: normal;
}
.pk-front-page .uf-hero-journey__content p { font-size: 12px; line-height: 1.5; }
.pk-front-page .uf-hero-journey__choice-button { font-size: 12px; line-height: 1.25; min-height: 38px; }
.pk-front-page .uf-hero-journey__decision-feedback :is(strong, small) { font-size: 11px; line-height: 1.4; }
.pk-front-page .uf-hero-journey__footer strong { font-size: 12px; line-height: 1.5; }
.pk-front-page .uf-hero-journey__service-copy { min-width: 0; }
.pk-front-page .uf-hero-journey__select-toggle span { overflow-wrap: break-word; }

/* Calculator: separate readable support copy, field labels and large metrics. */
.pk-front-page .uf-costs__heading > p { font-size: 15px; line-height: 1.65; }
.pk-front-page .uf-cost-chart__center span,
.pk-front-page .uf-cost-chart__center small { font-size: 11px; line-height: 1.3; }
.pk-front-page .uf-cost-chart__legend small,
.pk-front-page .uf-cost-chart__annual figcaption span,
.pk-front-page .uf-cost-chart__annual-highlight span,
.pk-front-page .uf-cost-chart__annual-highlight small,
.pk-front-page .uf-cost-chart__annual-row span,
.pk-front-page .uf-cost-chart__annual-row b { font-size: 11px; line-height: 1.4; }
.pk-front-page .uf-cost-chart--expanded .uf-cost-editor summary small,
.pk-front-page .uf-cost-chart--expanded .uf-cost-editor__field > label:first-child,
.pk-front-page .uf-cost-chart--expanded .uf-cost-editor__person-fields > label,
.pk-front-page .uf-cost-chart--expanded .uf-cost-editor__privacy,
.pk-front-page .uf-cost-chart--expanded .uf-cost-editor__household-head span,
.pk-front-page .uf-cost-chart--expanded .uf-cost-chart__five-year-head span,
.pk-front-page .uf-cost-chart--expanded .uf-cost-chart__five-year-grid span,
.pk-front-page .uf-cost-chart--expanded .uf-cost-chart__legend-price b,
.pk-front-page .uf-cost-chart--expanded .uf-cost-chart__five-year-grid small,
.pk-front-page .uf-cost-chart--expanded .uf-cost-chart__five-year-note {
  font-size: 12px;
  line-height: 1.5;
}
.pk-front-page .uf-cost-chart--expanded .uf-cost-editor summary span,
.pk-front-page .uf-cost-chart--expanded .uf-cost-editor__body > p,
.pk-front-page .uf-cost-chart--expanded .uf-cost-editor__person-heading strong,
.pk-front-page .uf-cost-chart--expanded .uf-cost-editor__remove,
.pk-front-page .uf-cost-chart--expanded .uf-cost-editor__add,
.pk-front-page .uf-cost-chart__legend strong,
.pk-front-page .uf-cost-chart__legend b,
.pk-front-page .uf-cost-summary__caption,
.pk-front-page .uf-cost-summary__context,
.pk-front-page .uf-cost-summary__line-head span,
.pk-front-page .uf-cost-summary__disclaimer {
  font-size: 13px;
  line-height: 1.5;
}
.pk-front-page .uf-cost-summary__line-head strong { font-size: 15px; }
.pk-front-page .uf-cost-chart--expanded :is(.uf-cost-editor__person-fields, .uf-cost-chart__legend) { min-width: 0; }
.pk-front-page .uf-cost-chart--expanded :is(.uf-cost-editor__person, .uf-cost-chart__legend button, .uf-cost-summary__line) { min-width: 0; }
.pk-front-page .uf-cost-chart--expanded :is(.uf-cost-editor__person-heading, .uf-cost-summary__line-head) { flex-wrap: wrap; }
.pk-front-page .uf-cost-summary__line-head strong,
.pk-front-page .uf-cost-chart__legend b { overflow-wrap: anywhere; }

/* Active four-step animation: readable text, without reflowing schematic labels. */
.uf-how-page .pkca--utilfreds-how .pkca__eyebrow { font-size: 12px; line-height: 1.5; }
.uf-how-page .pkca--utilfreds-how .pkca__kicker { font-size: 11px; line-height: 1.4; }
.uf-how-page .pkca--utilfreds-how .pkca__title { font-size: clamp(26px, 2.7vw, 35px); line-height: 1.16; }
.uf-how-page .pkca--utilfreds-how .pkca__text { font-size: 15px; line-height: 1.6; }
.uf-how-page .pkca--utilfreds-how .pkca__step span {
  font-size: 11px;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: break-word;
}
.uf-how-page .pkca--utilfreds-how :is(.pkca__pause, .pkca__replay) { font-size: 12px; }
.uf-how-page .pkca--utilfreds-how .pkca__footer { min-width: 0; }

/* FAQ, login and signup typography. Keep Google Sign-In branding untouched. */
.uf-faq-page .uf-faq-list summary { font-size: 16px; line-height: 1.45; }
.uf-faq-page .uf-faq-list details p { font-size: 15px; line-height: 1.7; }
.pkm-auth-page :is(.pkm-auth-card__eyebrow, .pkm-auth-promise__label) { font-size: 12px; line-height: 1.5; }
.pkm-auth-page .pkm-auth-meta,
.pkm-auth-page .pkm-auth-meta a,
.pkm-auth-page .pkm-check { font-size: 14px; line-height: 1.5; }
.pk-page .pkm-form .pkm-field label,
.pk-page .pkm-signup-form .pkm-field label {
  font-size: 14px !important; /* Specific legacy form labels are 13px !important. */
  line-height: 1.45;
}
.pk-page .pkm-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  font-size: 16px; /* Prevent auto-zoom in iOS Safari. */
  line-height: 1.45;
}
.pk-page .pkm-button { font-size: 15px; line-height: 1.35; }
.pkm-signup-form .pkm-note,
.pkm-signup-form .pkm-optional,
.pkm-signup-form .pkm-signup-steps small {
  font-size: 12px !important; /* Legacy signup CSS declares important 9–11px. */
  line-height: 1.4;
}

/* Min side. Font is also fixed at its original source declaration. */
.ufm-account { font-size: 16px; line-height: 1.6; }
.ufm-account .ufm-eyebrow { font-size: 12px; }
.ufm-account .ufm-metric > small,
.ufm-account .ufm-metric > span,
.ufm-account .ufm-expand > summary span,
.ufm-account .ufm-extra__item > summary span { font-size: 13px; line-height: 1.5; }
.ufm-account .ufm-section__heading p,
.ufm-account .ufm-next p,
.ufm-account .ufm-panel p { font-size: 15px; line-height: 1.6; }
.ufm-account :is(.ufm-button, .ufm-form label) { font-size: 14px; line-height: 1.45; }
.ufm-account :is(input, select, textarea) { font-size: 16px; line-height: 1.45; }
.ufm-account .ufm-metric { min-width: 0; }
.ufm-account :is(.ufm-metric strong, .ufm-panel, .ufm-next, .ufm-form) { overflow-wrap: break-word; }
.ufm-account :is(.ufm-next, .ufm-section__heading, .ufm-extra__item > summary) { min-width: 0; }
.ufm-account .ufm-button { white-space: normal; text-align: center; }

/* Keep informational cards and labels visible at narrow sizes and zoom. */
@media (max-width: 650px) {
  .pk-front-page .uf-hero h1 { font-size: clamp(32px, 8.25vw, 43px); line-height: 1.09; letter-spacing: -.045em; }
  .pk-front-page .uf-hero h1 > :is(span, em) { white-space: normal; overflow-wrap: normal; }
  .pk-front-page .uf-hero-journey__top { font-size: 11px; }
  .pk-front-page .uf-hero-journey__meta strong { font-size: 11px; }
  .pk-front-page .uf-hero-journey__hint { font-size: 10px; }
  .pk-front-page .uf-costs__heading > p { font-size: 15px; }
  .pk-front-page .uf-cost-chart--expanded .uf-cost-chart__five-year-grid strong {
    font-size: clamp(27px, 7.6vw, 39px);
    line-height: 1.1;
    overflow-wrap: anywhere;
  }
  .pk-front-page .uf-cost-chart--expanded .uf-cost-chart__five-year-head strong {
    font-size: clamp(21px, 6.4vw, 28px);
    line-height: 1.2;
  }
  .uf-how-page .pkca--utilfreds-how .pkca__title { font-size: clamp(25px, 7vw, 30px); }
  .uf-how-page .pkca--utilfreds-how .pkca__text { font-size: 15px; }
  .uf-how-page .pkca--utilfreds-how .pkca__steps { gap: 6px; }
  .uf-how-page .pkca--utilfreds-how .pkca__step { min-width: 0; }
  .uf-how-page .pkca--utilfreds-how .pkca__step span { font-size: 11px; white-space: normal; }
  .ufm-account h1 { font-size: clamp(32px, 8vw, 43px); }
  .ufm-account h2 { font-size: clamp(24px, 6vw, 31px); }
  .ufm-account .ufm-hero { min-width: 0; }
  .ufm-account .ufm-metrics { grid-template-columns: minmax(0, 1fr); }
}

/* Supports 200% zoom on a 768px desktop viewport, without forcing fixed-width cards. */
@media (max-width: 400px) {
  .pk-front-page .uf-hero-journey { min-width: 0; }
  .pk-front-page .uf-hero-journey__flow,
  .pk-front-page .uf-hero-journey__step,
  .pk-front-page .uf-cost-chart--expanded,
  .pk-front-page .uf-cost-summary { min-width: 0; }
  .pk-front-page .uf-cost-summary__line-head { flex-wrap: wrap; }
  .ufm-account .ufm-hero { padding-inline: 20px; }
  .ufm-account .ufm-next { flex-wrap: wrap; }
}

/* Ultra-small phones: give long plan names room without splitting mid-word. */
@media (max-width: 360px) {
  .pk-front-page .uf-hero-journey { padding-inline: 14px; }
  .pk-front-page .uf-hero-journey__step,
  .pk-front-page .uf-hero-journey__step--agreement,
  .pk-front-page .uf-hero-journey__step--challenge,
  .pk-front-page .uf-hero-journey__step--choice { padding-inline: 14px; }
  .pk-front-page .uf-hero-journey__content {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
  }
  .pk-front-page .uf-hero-journey__icon { width: 34px; height: 34px; }
  .pk-front-page .uf-hero-journey__select-toggle { font-size: 16px; }
}
