/* CasaPrimes readability layer
   Loaded after page-level CSS so typography stays consistent site-wide. */
:root {
    --readable-caption: .78rem;
    --readable-small: .84rem;
    --readable-body: .94rem;
    --readable-control: .9rem;
}

html { font-size: 18px; }
body { line-height: 1.6; }
p, li, dd { line-height: 1.65; }
input, select, textarea { font-size: var(--readable-control); }
textarea { line-height: 1.55; }

/* Shared navigation and footer */
.topbar { font-size: var(--readable-caption); padding-block: 7px; }
.nb-link { font-size: .86rem; padding-inline: 14px; }
.nb-search input, .nb-search button { font-size: .84rem; }
.nb-dd-item { font-size: .88rem; padding: 11px 14px; }
.nb-dd-col-title { font-size: .72rem; }
.nb-login-icon-btn, .nb-post, .nb-admin-link { font-size: .82rem; }
.nb-free-badge { font-size: .68rem; }
.mob-nav-link, .mob-drawer-sublink, .mob-up-item { font-size: .9rem; }
.mob-nav-section, .mni-label, .mob-nav-post-item .mni-label { font-size: .68rem; }
.ft-desc, .ft-link, .ft-app-link, .hp-footer-brand p,
.hp-footer-column a, .hp-newsletter p, .hp-footer-contact { font-size: .82rem; }
.ft-col-title, .hp-footer h2 { font-size: .88rem; }
.ft-bottom, .hp-footer-bottom, .hp-visitors { font-size: .72rem; }

/* Home page: the original artwork used fixed 8px-13px labels. */
.hp-page { font-size: 15px; }
.hp-page small, .hp-heading p, .hp-category small, .hp-city-card small,
.hp-developer-identity small, .hp-developer-stats small, .hp-blog small,
.hp-benefit-grid small, .hp-trust-grid small, .hp-review small,
.hp-app-copy > small { font-size: 12px; line-height: 1.45; }
.hp-button, .hp-search-tabs button, .hp-search-fields input,
.hp-search-fields select, .hp-view, .hp-filter-tabs button { font-size: 14px; }
.hp-category strong, .hp-service-card strong, .hp-city-card strong,
.hp-developer-identity strong, .hp-video strong, .hp-review strong { font-size: 14px; line-height: 1.35; }
.hp-hero-sub, .hp-luxury p, .hp-launch-banner p, .hp-owner p,
.hp-review blockquote, .hp-app p { font-size: 15px; line-height: 1.65; }
.hp-badge, .hp-location, .hp-property-specs, .hp-eyebrow,
.hp-services-heading > span, .hp-blog span { font-size: 12px; }
.hp-property-info h3, .hp-blog h3 { font-size: 15px; line-height: 1.4; }
.hp-property-info > strong { font-size: 16px; }

/* Search results and filters */
.ps-popular, .ps-type-tile strong, .sb-head-title span, .sb-head-reset,
.sb-head-apply, .sb-sec-clear, .sb-sec-label, .bhk-pill, .cb-item,
.budget-inputs small, .ps-filter-chips span, .ps-filter-chips a,
.ps-results-actions label, .ps-status, .ps-photo-count, .ps-posted-date,
.ps-card-status, .ps-filter-fab > b, .ps-location-chips b,
.ps-location-chips a { font-size: var(--readable-caption) !important; }
.sb-select, .budget-inp, .ps-results-actions select, .ps-card-location,
.ps-card-specs, .ps-card-actions a, .ps-card-facts small,
.ps-card-description, .ps-card-side .ps-details, .ps-search-heading span,
.ps-loader strong { font-size: var(--readable-small) !important; }
.ps-card-facts b { font-size: .88rem !important; }
.ps-card-title-row > a { font-size: 1rem !important; line-height: 1.35; }
.ps-search-heading p { font-size: var(--readable-body) !important; }
.ps-card { height: auto !important; min-height: 190px; }

/* Property details */
.pd-breadcrumb, .pd-gallery-main > span, .pd-gallery-more small,
.pd-badges span, .pd-price-block > span, .pd-price-block p,
.pd-feature-strip small, .pd-card header p, .pd-contact-card header p,
.pd-heading-row > button, .pd-heading-row > a, .pd-overview-grid small,
.pd-config-list p, .pd-config-list span, .pd-photo-tabs span,
.pd-photo-slide > span, .pd-photo-counter, .pd-subheading,
.pd-amenities > div, .pd-document > span, .pd-document small,
.pd-document em, .pd-owner small, .pd-owner p, .pd-owner em,
.pd-login-note, .pd-trust-row small, .pd-price-card > div > span,
.pd-price-card > p, .pd-price-card > aside strong,
.pd-price-card > aside small, .pd-price-card dl > div,
.pd-price-card .total, .pd-similar p, .pd-similar header a,
.pd-similar .hp-badge, .pd-similar .hp-location,
.pd-similar .hp-property-specs, .pd-contact-dialog header p,
.pd-contact-dialog .body small { font-size: var(--readable-caption) !important; line-height: 1.45; }
.pd-description, .pd-landmark, .pd-map-empty, .pd-document strong,
.pd-owner strong, .pd-owner-phone, .pd-trust-row span,
.pd-contact-card > .brochure, .pd-tour-card p, .pd-tour-card a,
.pd-similar .hp-property-info h3, .pd-similar .hp-property-info > strong,
.pd-contact-dialog .body p { font-size: var(--readable-small) !important; line-height: 1.6; }
.pd-feature-strip strong, .pd-overview-grid strong { font-size: .86rem !important; }
.pd-nav-tabs button { font-size: .76rem !important; line-height: 1.25; min-height: 46px; }

/* Services and account/profile pages */
.svc-hero-eyebrow, .svc-hero-badge, .svc-hint, .svc-result-label,
.svc-result-item-label, .bank-rate, .pf-phone, .pf-verified,
.pf-nav-badge, .pf-prop-loc, .pf-prop-feat, .pf-prop-status,
.pf-enq-meta, .pf-enq-type, .pf-plan-name, .pf-stat-lbl {
    font-size: var(--readable-caption) !important;
}
.svc-label, .svc-trust-item, .bank-name, .svc-info-text,
.pf-nav-item, .pf-card-action, .pf-prop-btn, .pf-label {
    font-size: var(--readable-small) !important;
}
.svc-input, .svc-select, .svc-textarea { min-height: 46px; }
.svc-submit, .pf-save-btn, .pf-empty-btn { font-size: var(--readable-control) !important; min-height: 46px; }

/* Property posting workflow */
.listing-shell .sidebar-title, .listing-shell .step-sub,
.listing-shell .ring-label, .listing-shell .card-title,
.listing-shell .pending-count, .listing-shell .pending-item-type,
.listing-shell .pending-item-size, .listing-shell .upload-meta,
.listing-shell .photo-type-label, .listing-shell .photo-type-badge,
.listing-shell .thumb-cover-badge, .listing-shell .thumb-type-tag,
.listing-shell .thumb-filename, .listing-shell .thumb-set-cover,
.listing-shell .upload-tip, .listing-shell .photo-counter,
.listing-shell .intent-pill, .listing-shell .step-badge {
    font-size: var(--readable-caption) !important;
}
.listing-shell .step-num, .listing-shell .step-name,
.listing-shell .help-title, .listing-shell .help-text,
.listing-shell .form-label, .listing-shell .pending-title,
.listing-shell .pending-item, .listing-shell .photo-type-sel,
.listing-shell .brochure-name, .listing-shell .chip,
.listing-shell .action-bar-left, .listing-shell .btn-add-bhk,
.listing-shell .bhk-card-title, .listing-shell .bhk-act-btn,
.listing-shell .toggle-btn { font-size: var(--readable-small) !important; }
.listing-shell .intent-pill-btn, .listing-shell .btype-btn,
.listing-shell .radio-option, .listing-shell .yn-btn,
.listing-shell .tab-btn, .listing-shell .prop-card,
.listing-shell .prefix-tag, .listing-shell .s1-pill,
.listing-shell .upload-btn, .listing-shell .pending-submit-btn,
.listing-shell .btn-next { font-size: var(--readable-control) !important; }
.listing-shell .form-input, .listing-shell .form-select,
.listing-shell .form-textarea { min-height: 46px; line-height: 1.45; }

/* Rent receipt, login and install-app flows */
.rr-page-kicker, .rr-page-steps span, .sec-title,
.receipt-preview-label, .rr-tag, .rr-amount-label, .rr-words,
.rr-sig-label, .rr-footer, .pay-sub, .pay-amount-label,
.pay-secure, .wl-hero-sub, .rt-row, .back, .ppill,
.cbrow, .err-msg, .wl-footer, .ia-badge, .ia-step-os,
.ia-step-note { font-size: var(--readable-caption) !important; }
.rr-page-sub, .fl, .rr-meta, .rr-row, .pay-feature,
.pay-close-txt, .pay-success-sub, .toast, .cc,
.ia-step-list li, .ia-toast { font-size: var(--readable-small) !important; }
.fi, .fs, .ti, .ia-installed-msg { font-size: var(--readable-control) !important; }
.fi, .fs, .ti { min-height: 46px; }

/* Blog and legal content */
.blog-hero-tag, .featured-badge, .blog-cat-tag, .blog-meta-name,
.blog-meta-date, .blog-read, .sb-title, .sb-blog-date,
.bd-breadcrumb, .bd-cat, .bd-meta-date, .bd-stat, .bd-tag,
.related-date, .legal-updated, .legal-toc-title {
    font-size: var(--readable-caption) !important;
}
.cat-chip, .blog-desc, .sb-blog-ttl, .page-btn, .bd-meta-name,
.bd-share-btn, .related-title, .toc-item, .legal-toc a,
.legal-highlight { font-size: var(--readable-small) !important; }
.legal-text, .legal-list li { font-size: var(--readable-body) !important; }
.bd-content { font-size: 1rem !important; line-height: 1.85; }

/* Checkout and subscription pages */
.co-breadcrumb, .co-section-title, .co-section-title span, .co-hint,
.security-note, .co-summary-title, .co-plan-sub, .co-discount-row,
.co-plan-feat, .co-terms, .sub-hero-badge, .prog-step, .dur-save,
.pop-badge, .pro-badge, .plan-tag, .plan-target, .plan-period,
.plan-duration-note, .plan-original, .plan-saving, .pf, .feat-badge,
.compare-head-sub, .compare-table th, .ct-group, .ct-pur, .ct-pre,
.g-badge { font-size: var(--readable-caption) !important; }
.co-heading p, .co-label, .pay-method, .co-line, .co-success-sub,
.submitted-badge, .dur-btn, .compare-table td, .ct-val,
.sub-skip p, .sub-skip a { font-size: var(--readable-small) !important; }
.co-input, .co-select, .co-pay-btn, .co-success-btn, .plan-cta {
    font-size: var(--readable-control) !important;
    min-height: 46px;
}

/* Inline page labels written with very small rem values. */
[style*="font-size:.5"], [style*="font-size: .5"],
[style*="font-size:.6"], [style*="font-size: .6"],
[style*="font-size:.7"], [style*="font-size: .7"] {
    font-size: var(--readable-caption) !important;
    line-height: 1.4;
}
[style*="font-size:.8"], [style*="font-size: .8"] {
    font-size: var(--readable-small) !important;
}

/* Admin pages use the same readable scale without changing dashboard density. */
.adm-body { font-size: 1rem; line-height: 1.55; }
.adm-nav-item, .adm-topbar-title, .adm-card-title { font-size: .9rem; }
.adm-page-sub, .adm-page-header-sub, .adm-stat-label, .adm-card-link,
.adm-table, .adm-fl { font-size: .82rem; }
.adm-table th, .adm-brand-tag, .adm-user-badge { font-size: .72rem; }
.adm-table td { line-height: 1.45; }
.adm-content label, .adm-content input, .adm-content select,
.adm-content textarea, .adm-content button { font-size: .84rem !important; }
.adm-content small, .adm-content [class*="-sub"],
.adm-content [class*="-meta"], .adm-content [class*="-lbl"],
.adm-content [class*="-label"], .adm-content [class*="badge"] {
    font-size: .74rem !important;
    line-height: 1.4;
}

@media (max-width: 900px) {
    html { font-size: 15px; }
    body { line-height: 1.5; }
    p, li, dd { line-height: 1.55; }
    .hp-page { font-size: 12px; }
    .hp-wrap { width: calc(100% - 28px); }
    .hp-content { gap: 34px; }
    .hp-property { flex-basis: min(78%, 310px); }
    .hp-property-info { padding: 12px; }
    .hp-service-card { min-height: 112px; padding: 12px 5px; }
    .hp-developer, .hp-review { min-height: 150px; }
    .pd-card, .pd-side-card { padding: 16px 13px; }
    .pd-overview-grid > div { min-height: 62px; }
    .ps-card { min-height: 0; }

    /* Keep the mobile hierarchy compact, similar to modern property apps. */
    .hp-page h2, .hp-heading h2, .hp-heading > h2 { font-size: 18px; }
    .hp-hero h1 { font-size: 32px; }
    .hp-services-heading h2, .hp-luxury h2 { font-size: 22px; }
    .hp-app h2 { font-size: 21px; }
    .hp-page small, .hp-heading p, .hp-category small, .hp-city-card small,
    .hp-developer-identity small, .hp-developer-stats small, .hp-blog small,
    .hp-benefit-grid small, .hp-trust-grid small, .hp-review small,
    .hp-app-copy > small { font-size: 10px; }
    .hp-button, .hp-search-tabs button, .hp-search-fields input,
    .hp-search-fields select, .hp-view, .hp-filter-tabs button { font-size: 12px; }
    .hp-category strong, .hp-service-card strong, .hp-city-card strong,
    .hp-developer-identity strong, .hp-video strong,
    .hp-review strong { font-size: 12px; }
    .hp-hero-sub, .hp-luxury p, .hp-launch-banner p, .hp-owner p,
    .hp-review blockquote, .hp-app p { font-size: 13px; }
    .hp-badge, .hp-location, .hp-property-specs, .hp-eyebrow,
    .hp-services-heading > span, .hp-blog span { font-size: 10px; }
    .hp-property-info h3, .hp-blog h3 { font-size: 13px; }
    .hp-property-info > strong { font-size: 14px; }
}

@media (max-width: 420px) {
    html { font-size: 14px; }
    .nb-search input, .nb-search button { font-size: .82rem; }
    .hp-hero-sub, .hp-luxury p, .hp-launch-banner p, .hp-owner p,
    .hp-review blockquote, .hp-app p { font-size: 12px; }
    .hp-shortcuts .hp-category { min-width: 82px; }
    .pd-nav-tabs button { font-size: .7rem !important; padding-inline: 3px; }
}
