/* ═══════════════════════════════════════════════════════════
   Dwello typography - Booking.com-style
   Loaded last so it normalises weights across the whole site.

   • System UI font stack (crisp on every device, no web-font delay)
   • Body copy regular (400), comfortable 1.5 line-height
   • Buttons, links, navigation, labels: medium (500)
   • Headings, prices, key numbers: bold (700) - never 800/900
   • Sentence case: no shouting uppercase / letter-spaced labels
   ═══════════════════════════════════════════════════════════ */

:root {
  --dw-font: BlinkMacSystemFont, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --dw-text: #1a1a1a;
  --dw-text-soft: #595959;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 700;
}

html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--dw-font);
  font-size: 15px;
  font-weight: var(--fw-regular);
  line-height: 1.5;
  color: var(--dw-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
button, input, select, textarea, .btn, .form-control, .form-select { font-family: inherit; }

/* ── Headings: bold, tight, no extra tracking ───────────── */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-weight: var(--fw-bold);
  letter-spacing: -0.01em;
  line-height: 1.25;
}
h1, .h1 { letter-spacing: -0.02em; }
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 { font-weight: var(--fw-bold); }

/* Nothing on the site is heavier than bold */
.fw-black, .fw-bolder, .fw-800, .fw-900 { font-weight: var(--fw-bold) !important; }
[style*="font-weight:800"], [style*="font-weight: 800"],
[style*="font-weight:900"], [style*="font-weight: 900"] { font-weight: var(--fw-bold) !important; }

/* Inline emphasis reads as semibold, not a block of heavy text */
strong, b { font-weight: 600; }
p .fw-bold, li .fw-bold { font-weight: 600 !important; }
.fw-semibold { font-weight: 600 !important; }
.lead { font-weight: var(--fw-regular); font-size: 1.1rem; }

/* Muted/secondary copy */
.text-muted, .dw-hint, .dw-flow-sub { color: var(--dw-text-soft) !important; }

/* ── Buttons & links: medium weight, sentence case ─────── */
.btn, .btn-action, .btn-quote, .btn-dw, .dw-actions .btn, .dw-auth-btn,
.auth-login-form-shell .btn-action, .auth-signup-form-shell .btn-action {
  font-weight: var(--fw-medium);
  letter-spacing: 0;
  text-transform: none;
}
.btn.fw-bold, .btn-dw.btn-lg { font-weight: 600 !important; }
a { font-weight: inherit; }

/* ── Navigation ─────────────────────────────────────────── */
.navbar-mc .nav-link, .navbar-mc .nav-link.active, .dw-nav-dd .dropdown-item,
.dw-offcanvas-link, .dw-offcanvas-link.active { font-weight: var(--fw-medium); }
.navbar-mc .navbar-brand, .footer-mc .footer-brand { font-weight: var(--fw-bold); }
.dw-offcanvas-section-label, .dw-nav-dd .dropdown-header {
  text-transform: none; letter-spacing: 0; font-weight: 600; font-size: .8rem; color: var(--dw-text-soft);
}

/* ── Labels, eyebrows, section tags ─────────────────────── */
.section-label, .dw-flow-kicker, .hero-main .hero-badge {
  text-transform: none; letter-spacing: 0; font-weight: 600; font-size: .9rem;
}
.form-label, .dw-field > label, .dw-label,
.auth-login-form-shell .form-label, .auth-signup-form-shell .form-label,
.property-request-form .form-label { font-weight: var(--fw-medium); color: var(--dw-text); }
.footer-mc .footer-heading, .contact-info-item .ci-label, .admin-nav-section-label,
.home-app-store-text small, .home-app-store-badge, .home-app-screen-badge,
.home-app-screen-card.is-stat span, .home-app-mini-label {
  text-transform: none; letter-spacing: 0; font-weight: 600;
}
.footer-mc .footer-heading { opacity: .75; font-size: .95rem; }
.badge { font-weight: 600; letter-spacing: 0; }

/* ── Hero & big numbers ─────────────────────────────────── */
.hero-main h1 { font-weight: var(--fw-bold); letter-spacing: -0.02em; }
.hero-main .hero-service-pill, .hero-main .hero-trust-badge { font-weight: var(--fw-medium); }
.stat-item .stat-num, .asc-num, .home-app-screen-card.is-stat strong, .dw-tile strong { font-weight: var(--fw-bold); }
.process-step .step-num { font-weight: var(--fw-bold); }
.admin-page-title, .auth-brand-name, .auth-card .auth-logo, .home-app-screen-brand,
.home-app-store-text strong, .home-app-mini-title, .home-app-floating-chip { font-weight: var(--fw-bold); }

/* ── Journey UI (explore, wizard, build, plans) ─────────── */
.dw-flow-title { font-weight: var(--fw-bold); letter-spacing: -0.02em; }
.dw-progress-label { text-transform: none; letter-spacing: 0; font-weight: 600; }
.dw-choice { font-weight: var(--fw-medium); }
.dw-choice.is-selected, .dw-choice[aria-pressed="true"] { font-weight: 600; }
.dw-chip { font-weight: var(--fw-medium); }
.dw-segment button { font-weight: var(--fw-medium); }
.dw-segment button.is-active { font-weight: 600; }
.dw-journey-card h3 { font-size: 1.1rem; letter-spacing: -0.01em; }
.dw-journey-card .dw-cta { font-weight: 600; }
.dw-motto-box { letter-spacing: 0; font-weight: var(--fw-bold); }
.dw-summary-chip { font-weight: var(--fw-medium); }
.dw-state strong { font-weight: 600; }
.dw-tracker .dw-track-label { font-weight: 600; }
.dw-tracker li:not(.is-done):not(.is-current) .dw-track-label { font-weight: var(--fw-regular); }
.dw-verified-badge { font-weight: 600; letter-spacing: 0; }
.dw-cover-tag, .dw-photo .dw-cover-tag { font-weight: 600; }
.dw-money > span, .dw-money > .form-control { font-weight: 600; }
.dw-stepper input, .dw-stepper button { font-weight: 600; }
.dw-phone-group .input-group-text { font-weight: var(--fw-medium); }

/* Prices stay bold - they're the thing people scan for */
.listing-price, .price, [class*="price"] strong { font-weight: var(--fw-bold); }
