/* Shared type scale for public pages, account pages, project/admin workspaces,
   and the standalone buyer journey. Keep differences tied to content roles. */
@font-face{font-family:Inter;src:url('../fonts/inter-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--vs-font:Inter,Arial,sans-serif;--vs-body:16px;--vs-ui:14px;--vs-small:12px;--vs-title:40px;--vs-section:28px;--vs-card:20px;--vs-hero:56px}
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--vs-font);font-size:var(--vs-body);line-height:1.6;font-synthesis:none}
:is(#root,.buyer-page) :is(h1,h2,h3,h4,p,a,button,input,select,textarea,label,legend,summary,small,th,td){font-family:var(--vs-font)}
:is(#root,.buyer-page) :is(h1,h2,h3,h4){font-weight:700;font-style:normal;line-height:1.3;overflow-wrap:break-word}
:is(#root,.buyer-page) h1{font-size:var(--vs-title)!important;line-height:1.2;letter-spacing:-.035em}
:is(#root,.buyer-page) h2{font-size:var(--vs-section);letter-spacing:-.025em}
:is(#root,.buyer-page) h3{font-size:var(--vs-card);letter-spacing:-.015em}
:is(#root,.buyer-page) h4{font-size:18px;letter-spacing:0}
:is(#root,.buyer-page) p{font-size:var(--vs-body);line-height:1.65}
:is(#root,.buyer-page) :is(button,.button,.action,summary){font-size:var(--vs-ui);font-weight:600;line-height:1.5}
:is(#root,.buyer-page) :is(input,select,textarea){font-size:var(--vs-body);font-weight:400;line-height:1.5}
:is(#root,.buyer-page) :is(label,legend,.field>span){font-size:var(--vs-ui);line-height:1.5;font-weight:600}
:is(#root,.buyer-page) input::placeholder{font-size:inherit}
:is(#root,.buyer-page) :is(small,.hint,.breadcrumbs,.eyebrow,.projects-kicker,.project-eyebrow,.faq-eyebrow,.admin-eyebrow,.admin-nav-group){font-size:var(--vs-small);line-height:1.5}
:is(#root,.buyer-page) :is(.notice,.error,[role='status']){font-size:var(--vs-ui)!important;line-height:1.6}
/* Page title roles that use h2 in the existing application. */
#root .section-title h2{font-size:var(--vs-title);line-height:1.2;letter-spacing:-.035em}
#root .hero-carousel .hero-copy h1,:is(#root,.buyer-page) .intro h1{font-size:var(--vs-hero)!important;line-height:1.12;letter-spacing:-.04em}
.buyer-page .intro h1 em{font:inherit;color:inherit}
#root .hero-reference-highlight{font-size:32px;line-height:1.25;letter-spacing:-.025em}
/* Repeated card/panel titles use the same scale, regardless of heading tag. */
#root :is(.catalog-body,.admin-panel,.admin-section-head,.business-grid,.contact-inbox-card,.refund-sidebar,.faq-help-card,.project-enquiry-sidebar,.owner-contact,.comparison,.package-history,.invoice-sheet) h2,
#root :is(.catalog-body,.admin-panel,.business-grid,.owner-contact,.comparison,.invoice-sheet) h3,
.buyer-page .card h3{font-size:var(--vs-card)!important;line-height:1.35;letter-spacing:-.015em}
#root :is(.property-title,.reference-property-card .property-title){font-size:var(--vs-card)!important;font-weight:700;line-height:1.35}
#root :is(.compact-body h3,.reference-categories h3,.project-unit-copy h3,.home-project-card h3){font-size:var(--vs-card);line-height:1.35}
#root :is(.property p,.catalog-body p,.compact-body p,.business-grid p,.invoice-sheet p,.admin-panel p,.contact-sidebar p,.project-enquiry-sidebar p,.project-explore-panel p,.project-contact-panel p,.project-amenities-panel p,.faq-help-card p,.faq-answer>div p,.refund-guidance p,.refund-help p,.dashboard-listing p),
:is(#root,.buyer-page) :is(.card p,.empty){font-size:var(--vs-ui);line-height:1.6}
#root :is(.property .location,.facts,.amenities,.project-overview-details li,.project-additional-info li,.package-card li,.refund-sidebar nav a,.check,.admin-table,.admin-record-summary){font-size:var(--vs-ui);line-height:1.6}
#root :is(.site-header nav a,.secondary-nav a,.admin-sidebar nav a,.project-header nav a,.project-header nav button,.header-account summary,.header-account a,.header-account button),
.buyer-page nav a{font-size:var(--vs-ui);font-weight:600;line-height:1.5}
#root :is(.header-actions button,.header-actions .button,.buyer-journey-link){font-size:var(--vs-ui);line-height:1.5;white-space:normal}
#root :is(.card-status,.card-type,.card-property-id,.card-specifications small,.card-specifications strong,.card-owner,.card-compare,.status,.tag,.photo-label,.catalog-reference,.catalog-availability,.catalog-promoter,.catalog-metrics span,.catalog-metrics strong,.catalog-disclosure,.project-status-labels,.project-reference-line,.project-reference-note,.project-headline-stats span,.project-grid-legend,.public-plot span,.public-plot small,.public-plot b,.admin-status,.admin-table th,.admin-table td>small,.admin-activity small,.admin-brand small,.project-logo-tile small,.home-section-heading>div>span,.logo-carousel-heading span,.related-heading>div>span){font-size:var(--vs-small);line-height:1.5}
#root :is(.public-plot strong,.pm-unit-tile span,.project-headline-stats strong,.summary-location,.project-actual-title,.summary-intro){font-size:var(--vs-ui);line-height:1.6}
#root :is(.reference-footer p,.reference-footer address,.reference-footer-columns a,.business-contact,.footer-pages a,.explorer-footer p){font-size:var(--vs-ui);line-height:1.65}
#root :is(.reference-footer-columns h3,.reference-footer h3){font-size:18px;line-height:1.4}
#root :is(.reference-footer-bottom,.footer-pages span,.explorer-footer>small),.buyer-page footer{font-size:var(--vs-small);line-height:1.5}
:is(#root,.buyer-page) :is(.eyebrow,.hint){font-size:var(--vs-small);line-height:1.5}
.buyer-page .price{font-size:24px!important;line-height:1.3;font-weight:700}
/* Readable text may wrap; navigation and compact controls must allow it. */
#root .site-header{flex-wrap:wrap}
#root .site-header nav{flex-wrap:wrap;min-width:0}
#root .header-actions{flex-wrap:wrap;min-width:0}
#root :is(.project-header,.project-header nav,.project-view-tabs,.catalog-card-bottom,.result-tools){flex-wrap:wrap}
#root .project-view-tabs button{height:auto;white-space:normal}
#root .admin-row-actions{flex-wrap:wrap}
#root .public-plot{min-height:76px}
#root .admin-table{line-height:1.5}
@media(min-width:1000px){
 #root .site-header{gap:16px}
 #root .site-header nav{gap:10px}
}
@media(min-width:761px) and (max-width:1439px){
 #root .site-header nav{order:3;flex-basis:100%;justify-content:center}
 #root .header-actions{margin-left:auto}
}
@media(max-width:760px){
 :root{--vs-title:32px;--vs-section:24px;--vs-card:18px;--vs-hero:36px}
 #root .hero-reference-highlight{font-size:24px}
 #root .site-header nav a{white-space:normal}
 #root .header-actions button{min-height:44px}
 #root .project-header nav a{display:inline-block;margin:4px 8px 4px 0}
 #root .result-tools{min-width:0;gap:8px}
 #root .result-tools select{max-width:100%}
}
@media(max-width:420px){
 .buyer-page .fields{grid-template-columns:1fr}
}
