/* Shared screen typography. Local OFL font; no third-party font requests.
   Keep CAD SVG units and document/print metrics under their original rules. */
@font-face{
  font-family:"Inter";
  src:url("/assets/fonts/inter-variable.woff2") format("woff2");
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
}
@media screen{
  :root{
    --ui-font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --sans:var(--ui-font);
    --mono:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  }
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  html body,html :is(#appRoot,#authOverlay,#grPublico,#grCliente,.va),html body.va-page{
    font-family:var(--ui-font);font-size:16px;line-height:1.6;font-optical-sizing:auto;
  }
  html :is(#appRoot,#authOverlay,#grPublico,#grCliente,.va-page,.ms-page) :is(button,input,select,textarea){font-family:var(--ui-font)}
  html :is(#appRoot,#authOverlay,#grPublico,#grCliente,.va-page,.ms-page) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=button]):not([type=submit]),select,textarea){font-size:16px}
  html :is(#appRoot,#authOverlay,#grCliente) :is(.page-heading h1,.page-heading h2,.block>h2,.block>h3,.card .value,.stat strong,.auth-card h2){font-family:var(--ui-font);font-weight:600;letter-spacing:-.025em;line-height:1.25}
  html :is(#appRoot,#grCliente) :is(.btn,.gr-btn,.field,.ux-det-campo){font-size:14px;line-height:1.5}
  html :is(#appRoot,#grCliente) :is(.muted,.gr-sub,.gr-card p){line-height:1.6}
  html :is(#appRoot,#grCliente) :is(.mono,.sync,.gr-mono){font-family:var(--mono)}
  html :is(#appRoot,#grCliente,#grPublico) :is(table,.price,.stat,.ux-kpi,.gr-plan-grid){font-variant-numeric:tabular-nums}
  html #appRoot :is(.ux-hab-form label,.ux-hab-form-row label){font-size:14px;line-height:1.5}
  html #appRoot :is(.ux-hab-kpis span,.ux-hab-kpis small,.ux-hab-badge,.ux-hab-et,.ux-hab-pill,.ux-hab-tip,.ux-hab-hint,.ux-hab-param,.ux-lead-tempo,.ux-lead-origem,.ux-lead-perda){font-size:12px;line-height:1.55}
  html #appRoot :is(.ux-hab-note,.ux-hab-parc,.ux-hab-msg,.ux-hab-plano-res,.ux-hab-table){font-size:13px;line-height:1.6}
  html #appRoot .ux-hab-table :is(th,td){font-size:13px}
  html #appRoot .eyebrow{font-size:12px;line-height:1.55;letter-spacing:.08em}
  html #appRoot :is(.card,.metric-card) :is(.label,.sub){font-size:13px!important;line-height:1.55}
  html #grCliente :is(.gr-client-brand-copy small,.gr-rot,.ux-client-kicker,.ux-video-kicker,.ux-video-copy small,.ux-gallery-caption,.ux-welcome-status,.ux-journey-step small){font-size:12px;line-height:1.55}

  /* Public brand headings remain Georgia; body text and controls share Inter. */
  html #grPublico :is(.ux319-home,.ux318-gran-home,.ux-sim-guided){font-family:var(--ui-font)}
  html #grPublico .ux319-home .ux319-eyebrow{font-size:12px;line-height:1.55;letter-spacing:.08em}
  html #grPublico :is(.ux318-button,.ux319-primary,.ux319-text-button,.ux319-help-links button){font-family:var(--ui-font);font-size:14px;line-height:1.5}
  html #grPublico :is(.ux318-kicker,.ux318-fine,.ux318-caption p,.ux337-place,.ux337-panel>small,.ux319-builder strong){font-size:12px;line-height:1.6;letter-spacing:.03em}
  html #grPublico .ux-sim-guided :is(.ux-sim-status,.ux-sim-faixa-badge,.ux-sim-optional,.ux-sim-home-options button small,.ux-sim-home-fixed span,.ux-sim-home-fixed small,.ux-sim-enquadramento span,.ux-sim-enquadramento small,.ux-sim-advanced summary small,.ux-sim-comparar>summary small){font-size:12px;line-height:1.55}
  html #grPublico .ux-sim-guided :is(.ux-sim-result-hero span,.ux-sim-result-hero small,.ux-sim-card dt,.ux-sim-income-check span,.ux-sim-income-check small,.ux-sim-alerts strong,.ux-sim-alerts li,.ux-sim-next li,.ux-sim-nota,.ux-sim-rule summary,.ux-sim-rule-body p,.ux-sim-result-empty p){font-size:13px;line-height:1.6}
  html #grPublico .ux-sim-guided :is(.ux-sim-campos label,.ux-sim-home-options button span,.ux-sim-breakdown h6,.ux-sim-next strong){font-size:14px;line-height:1.5}
  html #grPublico .ux-sim-guided .ux-sim-campos label{font-size:14px!important}

  /* Monte Sião: readable labels/captions without changing plan lettering. */
  html .ms-page :is(h1,h2,h3){font-family:var(--ui-font)}
  html .ms-page :is(.hero h1,.section-heading h2,.intro h2){letter-spacing:-.035em}
  html .ms-page :is(.hero-intro p,.intro-details>p,.section-heading>p,.home-type>p,.execution-copy>p,.ebook-copy>p:not(.eyebrow),.contact-inner p:not(.eyebrow)){font-size:15px;line-height:1.75}
  html .ms-page :is(.eyebrow,.facts span,.hero-image figcaption,.residence-photo figcaption,.gallery-caption,.gallery-category,.media-caption,.map-legend,.map-note,.map-gesture-hint,.download-link,.lot-kind,.lot-area span,.footer-brand span,.site-footer>p,.site-footer>a,.ebook-art span){font-size:12px;line-height:1.65}
  html .ms-page .eyebrow{letter-spacing:.12em}
  html .ms-page :is(.button,.text-link,.main-nav,.header-contact,.gallery-filters button,.purchase-options a,.lot-panel label){font-size:14px;line-height:1.5}
  html .ms-page :is(.lot-panel #lot-hint,.consultation,.execution-copy .execution-address,.ms-help,.ms-check,.ms-data-use>p,.ms-status,.ms-rate,.ms-purchase-note,.ms-summary-empty>p,.mh-note,.mh-caption,.mh-warnings,.mh-warnings li,.mh-bottom-note,.mh-source-links){font-size:13px;line-height:1.65}
  html .ms-page .ebook-copy .ebook-note{font-size:13px!important;line-height:1.65}
  html .ms-page :is(.mh-house small,.mh-field small,.mh-rate-summary small){font-size:13px;line-height:1.65}
  html .ms-page :is(.ms-field>label,.ms-field>span,.mh-field>label,.mh-field>span,.ms-totals dt,.mh-totals dt,.ms-choices>label,.mh-check,.ms-review-totals dt){font-size:14px;line-height:1.5}
  html .ms-page :is(.ms-step,.ms-summary-label,.ms-schedule>summary,.ms-data-use>summary,.ms-protocol span,.ms-access>label,.mh-optional,.mh-status,.mh-schedule>summary,.mh-adjustments>summary,.mh-lines dt){font-size:12px;line-height:1.6}
  html .ms-page :is(.ms-table-scroll table,.mh-table-scroll table){font-size:12px;line-height:1.6}
  html .ms-page :is(.ms-totals,.ms-review-totals,.mh-totals,.mh-lines,.ms-table-scroll,.mh-table-scroll){font-variant-numeric:tabular-nums}
  html .ms-page :is(.ms-field input,.mh-field input,.lot-panel select){font-family:var(--ui-font);font-size:16px}

  /* Vista Alegre: both the public page and the embedded study viewer. */
  html .va :is(.va-facts span,.va-facts small,.va-legend,.va-map-badge span,.va-roadmap span,.va-viewer-stats span,.va-hero-card-head span,.va-hero-card-foot,.va-status-pill,.va-chip,.va-kicker){font-size:12px;line-height:1.55}
  html .va :is(.va-notice p,.va-viewer-head p,.va-validation li,.va-toolbar label,.va-info dt,.va-info dd,.va-info p){font-size:14px;line-height:1.6}
  html .va :is(.va-table th,.va-table td){font-size:12px;line-height:1.5}
  html .va .va-section-head>p{font-size:15px;line-height:1.65}
  html .va .va-hero-note{font-size:13px!important;line-height:1.6}
  html .va-top .va-brand small{font-size:12px;line-height:1.4}

  /* The install surface follows the app, including mobile reading sizes. */
  html #ux-pwa-actions,html #ux-pwa-dialog,html #ux-pwa-dialog :is(h2,button){font-family:var(--ui-font)}
  html #ux-pwa-actions{font-size:14px}
  html #ux-pwa-dialog{font-size:15px;line-height:1.65}
  html #ux-pwa-dialog .ux-pwa-note,html #ux-pwa-dialog #ux-pwa-status{font-size:13px!important;line-height:1.6}
  @media(max-width:600px){
    /* Central's nested grids must shrink with the 16px form controls. */
    html #appRoot #view-central .ux-emp-grade{grid-template-columns:minmax(0,1fr)}
    html #appRoot #view-central :is(.ux-emp-cartao,.ux-emp-form,.ux-emp-form label){min-width:0;overflow-wrap:anywhere}
    html #appRoot #view-central .ux-emp-form-linha{grid-template-columns:minmax(0,1fr) 76px;min-width:0}
    html #appRoot #view-central .ux-emp-form :is(input,select){min-width:0;width:100%;max-width:100%;box-sizing:border-box}
    html .ms-page .map-toolbar{flex-wrap:wrap;gap:10px;font-size:12px}
    html .ms-page .hero-image figcaption{flex-wrap:wrap;gap:6px}
    html .ms-page :is(.ms-field-row,.mh-field-row){min-width:0}
    html .ms-page .site-footer>a{white-space:normal;overflow-wrap:anywhere}
    html #grPublico .ux-sim-guided .ux-sim-result-head{flex-wrap:wrap}
  }
}
