/*
   ALEA client portal typography v2
   Consistent, readable type scale for every authenticated client page.
   This stylesheet MUST be loaded after mobile and feature-specific CSS.
*/

:root {
    --cp-type-caption: 13px;
    --cp-type-small: 14px;
    --cp-type-body: 16px;
    --cp-type-heading: 20px;
    --cp-type-display: 36px;
    --cp-leading-tight: 1.25;
    --cp-leading-body: 1.55;
}

.cp-body {
    font-size: var(--cp-type-body);
    line-height: var(--cp-leading-body);
}

/* Core portal */
.cp-company strong {
    font-size: 16px;
    line-height: var(--cp-leading-tight);
}

.cp-company span,
.cp-item-meta,
.cp-date,
.cp-help,
.cp-status,
.cp-book-service span,
.cp-book-slot-time strong,
.cp-book-slot-main span {
    font-size: var(--cp-type-small);
}

.cp-nav > a:not(.cp-activity-bell),
.cp-nav .cp-help-trigger,
.cp-button,
.cp-button-secondary,
.cp-button-danger,
.cp-tabs a {
    font-size: 15px;
    line-height: 1.2;
}

.cp-eyebrow {
    margin-bottom: 8px;
    font-size: var(--cp-type-caption);
    line-height: var(--cp-leading-tight);
}

.cp-title {
    margin-bottom: 14px;
    font-size: var(--cp-type-display);
    line-height: 1.04;
}

.cp-subtitle,
.cp-empty,
.cp-alert,
.cp-card > p {
    font-size: var(--cp-type-body);
    line-height: var(--cp-leading-body);
}

.cp-card > h2,
.cp-next h2,
.cp-section h2 {
    font-family: Inter, Arial, sans-serif;
    font-size: var(--cp-type-heading);
    font-weight: 600;
    line-height: var(--cp-leading-tight);
}

.cp-meta {
    font-size: var(--cp-type-body);
    line-height: var(--cp-leading-body);
}

.cp-item-title,
.cp-book-service strong,
.cp-book-slot-main strong {
    font-size: var(--cp-type-body);
    line-height: var(--cp-leading-tight);
}

.cp-field > span,
.cp-field-title,
.cp-check-grid label {
    font-size: var(--cp-type-small);
}

.cp-input,
.cp-select,
.cp-textarea {
    font-size: var(--cp-type-body);
    line-height: 1.4;
}

.cp-company-card h2 {
    font-size: 18px;
}

.cp-company-card p,
.cp-choice-grid input[type=checkbox] + label {
    font-size: 15px;
}

.cp-cancel-button,
.cp-login-link-subtle {
    font-size: var(--cp-type-small) !important;
}

/* Notification centre/activity */
.cp-activity-home-head a {
    font-size: var(--cp-type-caption);
}

.cp-activity-copy strong {
    font-size: 15px;
    line-height: 1.35;
}

.cp-activity-copy p,
.cp-activity-unread-summary {
    font-size: var(--cp-type-small);
    line-height: 1.5;
}

.cp-activity-date,
.cp-activity-action {
    font-size: var(--cp-type-caption);
    line-height: 1.35;
}

.cp-activity-new {
    font-size: 11px;
}

.cp-activity-icon {
    font-size: 15px;
}

/* Smart timeline: never use micro-type. */
.cp-smart-head h2 {
    font-size: 28px;
    line-height: 1.08;
}

.cp-smart-head p {
    font-size: 14px;
    line-height: 1.55;
}

.cp-smart-view-all,
.cp-smart-timeline-section-head > a {
    font-size: 13px;
    line-height: 1.35;
}

.cp-smart-metrics > div {
    min-height: 112px;
    padding: 15px;
}

.cp-smart-metrics span {
    font-size: 13px;
    line-height: 1.3;
}

.cp-smart-metrics strong {
    margin-top: 9px;
    font-size: 26px;
    line-height: 1;
}

.cp-smart-metrics small {
    margin-top: 8px;
    font-size: 12px;
    line-height: 1.45;
}

.cp-smart-timeline-item {
    min-height: 74px;
    padding: 14px 0;
}

.cp-smart-timeline-date strong {
    font-size: 13px;
    line-height: 1.25;
}

.cp-smart-timeline-date span {
    font-size: 12px;
    line-height: 1.3;
}

.cp-smart-timeline-marker span {
    width: 24px;
    height: 24px;
    font-size: 12px;
}

.cp-smart-timeline-copy strong {
    font-size: 14px;
    line-height: 1.4;
}

.cp-smart-timeline-copy span {
    font-size: 13px;
    line-height: 1.5;
}

.cp-smart-timeline-section-head h2 {
    font-size: 18px;
    line-height: 1.3;
}

.cp-smart-timeline-section-head p {
    font-size: 14px;
    line-height: 1.5;
}

.cp-smart-timeline-action {
    min-height: 36px;
    padding: 0 12px;
    font-size: 13px;
    line-height: 1;
}

/* Rebooking/reschedule surfaces */
.alea-rebook-kicker {
    font-size: 13px;
}

.alea-rebook-dialog h2,
.alea-rebook-intro h2 {
    font-size: clamp(28px, 5vw, 32px);
}

.alea-rebook-dialog p,
.alea-rebook-intro > p {
    font-size: 15px;
}

.alea-rebook-source strong,
.alea-rebook-source span {
    font-size: 14px;
}

.alea-rebook-match {
    font-size: 12px;
}

/* Deliberate display sizes that communicate hierarchy. */
.cp-book-slot-time span {
    font-size: 24px;
}

.cp-book-success h2 {
    font-family: "Instrument Serif", Georgia, serif;
    font-size: 30px;
    font-weight: 400;
}

@media (max-width: 800px) {
    :root {
        --cp-type-caption: 13px;
        --cp-type-small: 14px;
        --cp-type-body: 16px;
        --cp-type-heading: 20px;
        --cp-type-display: 34px;
    }

    .cp-nav > a:not(.cp-activity-bell),
    .cp-nav .cp-help-trigger,
    .cp-button,
    .cp-button-secondary,
    .cp-button-danger,
    .cp-tabs a {
        font-size: 15px;
    }

    .cp-smart-head h2 {
        font-size: 27px;
    }

    .cp-smart-metrics > div {
        min-height: 108px;
    }

    .cp-smart-timeline-copy strong {
        font-size: 14px;
    }

    .cp-smart-timeline-copy span {
        font-size: 13px;
    }
}
