/* Shared typography for the utility pages. Keep layout and state behavior local. */
body:is([data-page="garantia"], [data-page="privacidad"], [data-page="cita"], [data-page="encuesta"], [data-page="preferencias-whatsapp"]) {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.65;
}

body:is([data-page="garantia"], [data-page="privacidad"], [data-page="cita"], [data-page="encuesta"], [data-page="preferencias-whatsapp"]) :is(h1, h2, h3, h4) {
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: -.015em;
    line-height: 1.2;
    text-transform: none;
}

body:is([data-page="garantia"], [data-page="privacidad"], [data-page="cita"], [data-page="encuesta"], [data-page="preferencias-whatsapp"]) :is(p, li) {
    font-size: 1rem;
    line-height: 1.65;
}

/* Actions use the reading family; rating controls retain their numeric scale. */
body[data-page="garantia"] :is(.search-btn, .btn-solid, .btn-ghost, .wcard-cta),
body[data-page="privacidad"] :is(.back, .choice button),
body[data-page="cita"] :is(.btn-solid, .btn-ghost, .btn-link, .slot),
body[data-page="encuesta"] :is(.btn-solid, .btn-ghost, .btn-send),
body[data-page="preferencias-whatsapp"] :is(button, .home) {
    font-family: var(--font-body);
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0;
    text-transform: none;
}

body[data-page="garantia"] .search-input,
body[data-page="cita"] :is(input, select, textarea),
body[data-page="encuesta"] :is(input, select, textarea) {
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.5;
}

/* Plate values keep their capitals and distinct visual treatment. */
body[data-page="garantia"] .search-input {
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

body[data-page="garantia"] .search-input::placeholder {
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: .03em;
}

body[data-page="garantia"] :is(.section-tag, .limitada-eyebrow, .cover-label, .help-label),
body[data-page="privacidad"] .eyebrow,
body[data-page="cita"] :is(.section-tag, .card-label, .day-name),
body[data-page="encuesta"] :is(.section-tag, .vow-label, .q-num),
body[data-page="preferencias-whatsapp"] .eyebrow {
    font-family: var(--font-body);
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .1em;
    text-transform: uppercase;
}

/* Warranty: readable conditions inside compact expandable cards. */
body[data-page="garantia"] :is(.state-title, .vehicle-name, .wcard-service, .hist-title, .cover-title, .cover-name, .footer-heading) {
    font-family: var(--font-display);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0;
    text-transform: none;
}

body[data-page="garantia"] :is(.state-title, .wcard-service, .hist-title, .cover-name, .vehicle-name) {
    font-size: 1.25rem;
}

body[data-page="garantia"] .warranty-sub {
    font-family: var(--font-display);
    font-style: italic;
    font-size: clamp(1rem, 1.6vw, 1.15rem);
}

body[data-page="garantia"] :is(.wcard-date, .wcard-status, .verdict, .wcard-remaining, .ppf-snapshot-row, .wline, .maint-done, .wcond-list li, .limitada-list li, .limitada-cierre, .pdf-error, .results-note, .emision-strip span, .hist-sub, .hist-date, .hist-serv, .cover-sub, .search-error) {
    font-size: .875rem;
    line-height: 1.6;
    letter-spacing: 0;
}

body[data-page="garantia"] :is(.warranty-count-label, .wcard-badge, .ppf-snapshot-title, .wcard-sec-title, .wsec-title, .cover-mant, .cover-promise) {
    font-family: var(--font-body);
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .04em;
    text-transform: none;
}

body[data-page="garantia"] .limitada-list li::before {
    font-size: .75rem;
}

body[data-page="garantia"] .emision-strip strong {
    font-size: 1rem;
    line-height: 1.5;
}

body[data-page="garantia"] :is(.footer-tagline, .footer-links a, .footer-contact li, .footer-bottom p) {
    font-size: .875rem;
    line-height: 1.65;
}

body[data-page="garantia"] .footer-heading {
    font-size: 1.125rem;
}

/* Privacy: long-form copy, with quieter metadata and navigation. */
body[data-page="privacidad"] h2 {
    font-size: 1.5rem;
}

body[data-page="privacidad"] :is(.updated, .choice span, footer, footer p) {
    font-size: .875rem;
    line-height: 1.6;
}

/* Appointment: the date/time hierarchy and short service codes stay intact. */
body[data-page="cita"] :is(.when-day, .who-name, .car, .picker-title, .state-title) {
    font-family: var(--font-display);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0;
    text-transform: none;
}

body[data-page="cita"] :is(.who-name, .car, .picker-title, .state-title) {
    font-size: 1.25rem;
}

body[data-page="cita"] .when-time {
    font-variant-numeric: tabular-nums;
}

body[data-page="cita"] :is(.s-sub, .addr, .confirm-row p, .steps li, .state-desc) {
    font-size: 1rem;
    line-height: 1.6;
}

body[data-page="cita"] :is(.who-role, .addr-note, .muted, .msg, .picker-sub, .s-footer p) {
    font-size: .875rem;
    line-height: 1.6;
    letter-spacing: 0;
    text-transform: none;
}

body[data-page="cita"] :is(.pill, .chip, .counter, .step-n) {
    font-size: .75rem;
    line-height: 1.5;
    letter-spacing: .02em;
}

body[data-page="cita"] .confirmed {
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0;
    text-transform: none;
}

/* Survey: preserve the compact question layout and numeric answer sizes. */
body[data-page="encuesta"] :is(.state-title, .after-title, .q-title) {
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.35;
    text-transform: none;
}

body[data-page="encuesta"] :is(.state-title, .after-title, .q-title) {
    font-size: 1.25rem;
}

body[data-page="encuesta"] .state-title.big {
    font-size: 1.75rem;
}

body[data-page="encuesta"] :is(.vow-text, .state-desc, .after-desc) {
    font-size: 1rem;
    line-height: 1.6;
}

body[data-page="encuesta"] :is(.vow-note, .s-expect, .q-sub, .chip, .chips-hint, .idopt-t, .idopt-d, .send-error, .s-footer p) {
    font-size: .875rem;
    line-height: 1.55;
    letter-spacing: 0;
}

body[data-page="encuesta"] :is(.vow-tag, .q-flag, .stars-legend, .ta-count, .sendbar-hint) {
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .02em;
    text-transform: none;
}

body[data-page="encuesta"] .ta::placeholder {
    font-size: 1rem;
}

/* WhatsApp preferences: real shared families with the same restrained scale. */
body[data-page="preferencias-whatsapp"] h1 {
    font-size: clamp(1.75rem, 7vw, 2.2rem);
    line-height: 1.2;
}

body[data-page="preferencias-whatsapp"] :is(.note, #result) {
    font-size: .875rem;
    line-height: 1.6;
}
