/* REUNI DEVELOPMENT V16: one typography scale and one form component.
   Layout and the approved city animation remain in styles.css. */
:root {
  color-scheme: only light;
  --type-hero: clamp(54px, 5.3vw, 76px);
  --type-section: 42px;
  --type-dialog: 40px;
  --type-subheading: 22px;
  --type-body: 18px;
  --type-label: 16px;
  --type-input: 18px;
  --type-small: 14px;
  --type-micro: 12px;
  --form-text: var(--type-input);
  --read-text: var(--type-body);
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  font-family: var(--font); font-size: var(--type-body); font-weight: 400;
  line-height: 1.6; letter-spacing: 0; color: var(--ink); background: #fff;
}
button,input,textarea,select {font-family:var(--font);font-weight:400;letter-spacing:0;line-height:1.5;}
h1,h2,h3,h4 {font-family:var(--heading);font-weight:600;letter-spacing:-.025em;line-height:1.16;}
h1 {font-size:var(--type-hero);}
h2 {font-size:var(--type-section);}
h3 {font-size:var(--type-subheading);}
p,li,dd {font-size:var(--type-body);line-height:1.65;font-weight:400;}
strong,b {font-weight:500;}
small,.fine,.scope-note,.document-note,.document-meta {font-size:var(--type-small);line-height:1.55;}
.eyebrow {font-size:var(--type-micro);font-weight:500;letter-spacing:.1em;line-height:1.5;}
.button,.text-link {font-size:var(--type-label);font-weight:500;line-height:1.45;letter-spacing:0;}
.button {min-height:56px;}
.button.primary {background:var(--ink);color:#fff;}
.button.primary:hover {background:#30283f;}
.nav-group>summary,.nav-dropdown button,.nav .nav-dropdown button {font-size:var(--type-label);line-height:1.45;}
.header-cta {font-size:var(--type-label);}
.brand>span {font-size:12px;letter-spacing:.1em;font-weight:400;line-height:1.4;}
#hero-title {font-size:var(--type-hero);line-height:1.04;font-weight:600;letter-spacing:-.045em;}
#hero-title .desktop-title {display:block;}
#hero-title .phone-title {display:none;}
.hero .hero-lead {font-size:20px;line-height:1.6;max-width:580px;margin-top:24px;}
.proof {font-size:var(--type-small);line-height:1.6;}
.proof strong {font-weight:600;}
.section-top h2,.closing h2 {font-size:var(--type-section);line-height:1.16;}
.section-top p:not(.eyebrow),.closing-copy>p {font-size:var(--type-body);line-height:1.65;}
.section-top .text-link {font-size:var(--type-label);}
.opportunity strong {font-family:var(--heading);font-size:21px;line-height:1.3;font-weight:500;letter-spacing:-.01em;}
.opportunity small {font-size:var(--type-small);line-height:1.6;}
.opportunity {min-height:166px;}
.opportunity>span {min-width:0;}
.budget-card strong {font-size:26px;font-weight:500;line-height:1.25;letter-spacing:-.02em;}
.budget-card small {font-size:var(--type-micro);line-height:1.5;}
.stack-card h2 {font-family:var(--font);font-size:16px;font-weight:500;line-height:1.3;letter-spacing:0;}
.stack-card .mini-legend>span {font-size:13px;line-height:1.5;}
.card-micro,.card-action,.scenario-card .card-action {font-size:12px;line-height:1.45;font-weight:500;}
.scenario-card strong {font-family:var(--heading);font-size:20px;line-height:1.25;font-weight:500;letter-spacing:-.015em;}
.scenario-card small {font-size:11px;line-height:1.5;letter-spacing:.06em;}
.scenario-card em {font-size:12px;line-height:1.5;}
.city-caption {font-size:11px;line-height:1.5;}
.motion-toggle {font-size:12px;line-height:1.4;}
/* Identical dialog scale, independent of which navigation item opened it. */
.dialog {background:#fff;color:var(--ink);color-scheme:only light;}
.dialog-inner,.subscribe-dialog .dialog-inner {padding:64px 36px 30px;}
.dialog h2,.topic-dialog h2,.mezz-heading h2,.subscribe-dialog h2,.invitation h2 {
  font-size:var(--type-dialog);line-height:1.15;font-weight:600;letter-spacing:-.03em;
  margin:12px 0 20px;padding-right:0;overflow-wrap:normal;
}
.dialog h3,.mezz-contact h3,.form-heading,.info-form>h3 {font-size:var(--type-subheading);line-height:1.3;font-weight:500;letter-spacing:-.015em;}
.dialog p,.dialog .dialog-lead,.topic-details p,.reader-dialog p,.invitation #invitation-description {font-size:var(--type-body);line-height:1.6;}
.dialog .dialog-lead {margin:0 0 24px;}
.dialog .eyebrow,.invitation .eyebrow {font-size:var(--type-micro);line-height:1.5;letter-spacing:.1em;}
.topic-details {margin-top:22px;}
.topic-details:not([open])>div {display:block;}
.topic-details .detail-row {padding:16px 0;}
.topic-details .detail-row h3 {font-size:var(--type-subheading);line-height:1.3;}
.topic-details .detail-row p {margin:6px 0 0;}
.topic-form>.form-heading {margin-bottom:20px;}
.contact-dialog,.subscribe-dialog,.invitation {max-width:660px;}
.contact-dialog .lead-grid,.subscribe-dialog .lead-grid,.invitation .lead-grid {grid-template-columns:1fr 1fr;}
.info-contact-dialog {max-width:1100px;width:calc(100% - 56px);}
.info-layout {display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}
.info-copy,.info-form {min-width:0;}
.info-form {padding-left:32px;border-left:1px solid var(--line);}
.info-form>h3 {margin:0 0 20px;}
.source-products h3 {font-size:var(--type-subheading);margin:25px 0 7px;}
.info-extra {border-top:1px solid var(--line);padding-top:20px;margin-top:25px;}
.model-label {font-size:var(--type-small);line-height:1.5;}
.range-block>label,.range-block output {font-size:var(--type-label);line-height:1.5;}
.range-block output {font-weight:500;}
.range-ends,.range-buttons {font-size:var(--type-small);line-height:1.5;}
.range-buttons button {font-size:24px;font-weight:400;line-height:1;}
#capital-table {font-size:var(--type-label);line-height:1.5;}
#capital-table caption,#capital-table thead th {font-size:var(--type-small);line-height:1.5;}
#capital-table td,#capital-table th {font-weight:400;}
#capital-table tfoot td,#capital-table tfoot th {font-weight:600;}
.mezz-model .capital-bar>span {font-size:var(--type-small);line-height:1.4;}
.model-result strong {font-size:28px;line-height:1.3;font-weight:500;}
.model-result span {font-size:var(--type-small);line-height:1.65;}
.mezz-dialog .model-disclosure,.model-conditions p {font-size:var(--type-small);line-height:1.6;}
.model-conditions summary {font-size:var(--type-label);line-height:1.5;}
.mezz-contact>p {font-size:var(--type-body);line-height:1.6;}
.model-mobile-action button {font-size:var(--type-label);}
/* Explicit control appearance prevents dark native tel inputs in dark OS themes.
   Every text control has the same dimensions; only checkboxes/ranges are excluded. */
:where(input:not([type=checkbox]):not([type=range]):not([type=hidden]),textarea,select) {
  -webkit-appearance:none;appearance:none;box-sizing:border-box;display:block;
  width:100%;max-width:100%;min-width:0;min-height:56px;margin:0;
  color:var(--ink);-webkit-text-fill-color:var(--ink);caret-color:var(--purple);
  background-color:#fff;background-image:none;border:1px solid #bdb4d7;
  border-radius:var(--radius);padding:14px;font-size:var(--type-input);line-height:1.45;
  color-scheme:only light;opacity:1;
}
textarea {min-height:128px;resize:vertical;}
input::placeholder,textarea::placeholder {color:#827b8d;opacity:1;-webkit-text-fill-color:#827b8d;}
input:autofill {box-shadow:0 0 0 1000px #fff inset;-webkit-text-fill-color:var(--ink);}
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus {
  -webkit-box-shadow:0 0 0 1000px #fff inset;box-shadow:0 0 0 1000px #fff inset;
  -webkit-text-fill-color:var(--ink);caret-color:var(--purple);
}
.lead-form {font-size:var(--type-label);}
.lead-form fieldset {padding:0;margin:0;border:0;min-width:0;}
.lead-form .required-note {font-size:var(--type-small);line-height:1.5;font-weight:400;margin:0 0 14px;color:#6d6579;}
.lead-grid {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;}
.lead-form label:not(.lead-consent) {font-size:var(--type-label);line-height:1.5;font-weight:500;margin-bottom:8px;}
.lead-input {background:#fff;min-height:58px;border:1px solid #bdb4d7;border-radius:var(--radius);padding:0 14px;gap:10px;}
.lead-input>.icon {width:20px;height:20px;flex:none;color:var(--purple);}
.lead-form .lead-input input {
  width:100%;font-size:var(--type-input);line-height:1.45;font-weight:400;min-height:56px;
  height:auto;padding:14px 0;margin:0;background:#fff;background-image:none;
  color:var(--ink);-webkit-text-fill-color:var(--ink);border:0;border-radius:0;outline:none;
}
.lead-input:focus-within {border-color:var(--purple);outline:2px solid var(--purple);outline-offset:2px;}
.lead-input:has(input[aria-invalid=true]) {border-color:#a12745;background:#fff;}
.lead-form .lead-consent {font-size:var(--type-small);line-height:1.6;font-weight:400;gap:12px;margin-top:18px;}
.lead-form .lead-consent input {width:22px;height:22px;min-width:22px;min-height:22px;margin:2px 0 0;accent-color:var(--purple);color-scheme:only light;}
.lead-form .lead-consent b {font-weight:500;}
.lead-form .lead-privacy {font-size:var(--type-small);line-height:1.5;gap:4px 14px;margin:6px 0 16px 34px;}
.lead-form .lead-privacy button {font-size:var(--type-small);line-height:1.5;min-height:40px;}
.lead-form .lead-submit {font-size:var(--type-label);line-height:1.45;font-weight:500;min-height:56px;padding:16px 20px;}
.lead-form .review-micro,.lead-form .prefill-note {font-size:13px;line-height:1.5;color:#746d7e;}
.lead-form .error {font-size:var(--type-small);line-height:1.5;font-weight:400;}
.lead-form .error:empty {display:none;}
.contact-inline {margin-top:18px;padding-top:14px;}
.contact-inline>span {font-size:13px;line-height:1.5;}
.contact-inline>div {display:flex;flex-wrap:wrap;gap:0 16px;}
.contact-inline a {font-size:var(--type-small);line-height:1.5;min-height:44px;font-weight:400;overflow-wrap:anywhere;}
.contact-inline a span {min-width:0;}
.invitation .invitation-content {padding:64px 32px 22px;}
.invitation #invitation-description {margin:0 0 24px;}
.invitation .invitation-decline,.consent-decline {font-size:var(--type-small);line-height:1.5;min-height:44px;}
.footer-contact h2 {font-size:var(--type-section);line-height:1.2;}
.footer-contact a {font-size:26px;font-weight:400;line-height:1.4;letter-spacing:-.02em;}
.footer-contact a small {font-size:var(--type-small);line-height:1.5;letter-spacing:0;}
.footer-main .text-link,.footer-links,.footer-links button {font-size:var(--type-small);line-height:1.5;}
.footer-note {font-size:12px;line-height:1.6;}
.receipt-details dt {font-size:var(--type-small);line-height:1.5;}
.receipt-details dd {font-size:var(--type-body);line-height:1.6;}
.dialog .form-note,.dialog .document-note,.dialog .document-meta {font-size:var(--type-small)!important;line-height:1.6!important;}
.claim-numbers strong {font-size:36px;line-height:1.25;font-weight:500;}
.claim-numbers span {font-size:var(--type-small);line-height:1.5;}
.standalone-reader {max-width:940px;}
.standalone-reader h1 {font-size:48px;line-height:1.12;}
.standalone-reader h2 {font-size:28px;line-height:1.25;margin:32px 0 12px;}
.standalone-reader h3 {font-size:var(--type-subheading);line-height:1.3;}
.standalone-reader p {font-size:var(--type-body);line-height:1.7;}
.standalone-reader .dialog-inner {padding:0;}
.standalone-reader .button {margin-top:30px;}
.mobile-sticky .button {font-size:var(--type-label);line-height:1.45;}
@media(max-width:1100px) {
 .info-layout {grid-template-columns:1fr;gap:28px;}
 .info-form {padding-left:0;padding-top:24px;border-left:0;border-top:1px solid var(--line);}
 .info-contact-dialog {max-width:720px;}
 .topic-details:not([open])>div {display:block;}
 .topic-form {padding-top:22px;border-top:1px solid var(--line);}
 .hero .hero-lead {font-size:var(--type-body);}
}
@media(max-width:1050px) {
 .mobile-menu .nav-group>summary {font-size:18px;line-height:1.5;}
 .mobile-menu .nav-dropdown button,.mobile-menu>a {font-size:16px;line-height:1.5;}
}
@media(max-width:760px) {
 :root {--type-hero:clamp(36px,10.4vw,44px);--type-section:34px;--type-dialog:32px;--type-subheading:21px;--type-body:18px;--type-label:16px;--type-input:18px;}
 .brand>span {font-size:10px;letter-spacing:.08em;}
 #hero-title .desktop-title {display:none;}
 #hero-title .phone-title {display:block;}
 #hero-title {font-size:var(--type-hero);line-height:1.06;letter-spacing:-.04em;}
 .hero-copy {padding-top:26px;}
 .hero-copy>.lead-form,.hero .hero-lead {display:none;}
 .proof {font-size:var(--type-small);}
 .section-top h2,.closing h2 {font-size:var(--type-section);}
 .section-top p:not(.eyebrow),.closing-copy>p {font-size:var(--type-body);line-height:1.6;}
 .section {padding-block:42px;}
 .opportunity strong {font-size:19px;}
 .opportunity small {font-size:14px;line-height:1.55;}
 .opportunity {padding:18px 14px;min-height:180px;gap:10px;}
 .opportunity>svg {width:22px;height:22px;}
 .budget-card strong {font-size:23px;line-height:1.25;}
 .budget-card small {font-size:12px;}
 .stack-card h2 {font-size:15px;line-height:1.25;}
 .stack-card .mini-legend>span {font-size:11px;line-height:1.5;}
 .card-action,.card-micro,.scenario-card .card-action {font-size:12px;line-height:1.45;}
 .scenario-card strong {font-size:19px;line-height:1.25;}
 .scenario-card small {font-size:10px;line-height:1.5;}
 .scenario-card em {font-size:12px;line-height:1.5;}
 .city-caption {font-size:10px;line-height:1.5;}
 .motion-toggle {font-size:11px;}
 .dialog-inner,.topic-dialog .dialog-inner,.subscribe-dialog .dialog-inner,.invitation .invitation-content {padding:64px 22px 24px;}
 .dialog h2,.topic-dialog h2,.mezz-heading h2,.subscribe-dialog h2,.invitation h2 {font-size:var(--type-dialog);line-height:1.15;margin:8px 0 18px;padding-right:0;}
 .dialog p,.dialog .dialog-lead,.topic-details p,.invitation #invitation-description {font-size:var(--type-body);line-height:1.6;}
 .dialog .eyebrow {font-size:var(--type-micro);}
 .topic-layout {gap:22px;}
 .topic-copy .topic-details {margin-top:14px;}
 .topic-details .detail-row {padding:13px 0;}
 .topic-details .detail-row h3 {font-size:var(--type-subheading);}
 .lead-grid,.contact-dialog .lead-grid,.subscribe-dialog .lead-grid,.invitation .lead-grid {grid-template-columns:1fr;gap:12px;}
 .lead-form .lead-input input {font-size:var(--type-input);}
 .lead-form .lead-consent {font-size:var(--type-small);line-height:1.6;}
 .lead-form .lead-privacy {font-size:var(--type-small);line-height:1.5;}
 .lead-form .lead-submit {font-size:var(--type-label);}
 .contact-inline a {font-size:var(--type-small);}
 .contact-inline>div {display:flex;flex-direction:column;align-items:flex-start;gap:0;}
 .contact-inline a {min-height:42px;}
 .dialog .lead-form .required-note {font-size:var(--type-small);}
 .topic-form>.form-heading {display:none;}
 .mezz-contact h3 {font-size:var(--type-subheading);}
 .mezz-contact>p {font-size:var(--type-body);}
 .range-block>label {font-size:var(--type-label);}
 .range-ends,.range-buttons {font-size:var(--type-small);}
 #capital-table {font-size:14px;}
 #capital-table thead th,#capital-table caption {font-size:12px;}
 .model-label {font-size:12px;}
 .model-result strong {font-size:26px;}
 .model-result span,.mezz-dialog .model-disclosure,.model-conditions p {font-size:14px;line-height:1.65;}
 .mezz-model .capital-bar>span {font-size:12px;}
 .footer-contact h2 {font-size:var(--type-section);}
 .footer-contact a {font-size:22px;line-height:1.5;}
 .footer-contact a small {font-size:14px;}
 .footer-main .text-link {font-size:14px;}
 .footer-links,.footer-links button {font-size:14px;}
 .standalone-reader h1 {font-size:var(--type-section);}
 .standalone-reader h2 {font-size:26px;}
 .standalone-reader p {font-size:var(--type-body);}
 .info-contact-dialog {width:calc(100% - 16px);}
 .info-layout {gap:18px;}
 .info-form>h3 {display:none;}
 .info-form {padding-top:22px;}
}
@media(max-width:360px) {
 .dialog-inner,.topic-dialog .dialog-inner,.subscribe-dialog .dialog-inner,.invitation .invitation-content {padding-inline:18px;}
 .hero-copy {padding-top:24px;}
 .opportunity {min-height:132px;}
 .brand>span {font-size:9px;}
 .budget-card strong {font-size:21px;}
 .stack-card h2 {font-size:14px;}
 .stack-card .mini-legend>span {font-size:10.5px;}
 .scenario-card strong {font-size:18px;}
 .scenario-card .card-action {font-size:12px;}
 .city-caption {font-size:9px;}
 .footer-contact a {font-size:20px;}
}
@media(max-height:520px) and (min-width:600px) {
 .lead-grid,.contact-dialog .lead-grid,.subscribe-dialog .lead-grid,.invitation .lead-grid {grid-template-columns:1fr 1fr;}
}
@media(forced-colors:active) {
 input:not([type=range]):not([type=checkbox]),textarea,select,.lead-form .lead-input input {forced-color-adjust:auto;}
 .lead-input {border:1px solid CanvasText;}
}

/* Native text fields have one shell, never two outlines. */
:is(.lead-form,#project-form) .lead-input input {
 border:0;background:#fff;background-image:none;border-radius:0;padding:14px 0;
 font-size:var(--type-input);line-height:1.45;min-height:56px;height:auto;width:100%;color:var(--ink);
 -webkit-text-fill-color:var(--ink);box-shadow:none;
}
@media(max-width:760px){
 .topic-layout{display:grid;grid-template-columns:1fr;gap:0;}
 .topic-copy{display:contents;}
 .topic-copy>.eyebrow{order:0;}
 .topic-copy>h2{order:1;}
 .topic-copy>.dialog-lead{order:2;}
 .topic-form{order:3;grid-row:auto;border-top:0;padding-top:0;}
 .topic-copy>.topic-details{order:4;margin-top:28px;}
 .topic-details:empty{display:none;}
}
