/* REIMANN Estate: readable typography and accessible green footer.
 * Container widths and existing listing grid/breakpoints are intentionally unchanged.
 * WCAG 2.2 SC 1.4.3: normal text >= 4.5:1.
 */
@media screen {
  :root { --brand-button-text:var(--brand-dark); }
  body.estate-page { font-size:16px; }
  .estate-nav { font-size:15px; }
  .estate-topbar { font-size:13px; }
  .estate-topbar>.container { flex-wrap:wrap; gap:3px 12px; }
  .hero-intro,.detail-text,.detail-sidebar>p:not(.eyebrow),
  .estate-contact p:not(.eyebrow),.estate-empty p { font-size:16px; line-height:1.8; }
  .hero-signature,.hero-image-label>span,.hero-side-note { font-size:14px; }
  .eyebrow { font-size:14px; letter-spacing:.12em; }
  .hero-copy .eyebrow,.listing-heading .eyebrow { font-size:14px; }
  .text-link { font-size:15px; }
  .search-title { font-size:16px; }
  .search-fields>* { min-width:0; }
  .search-fields label { font-size:15px; }
  .search-fields select { min-width:0; font-size:16px; min-height:46px; }
  .estate-button,.detail-sidebar .estate-button { font-size:16px!important; white-space:normal; }
  .listing-tools { font-size:15px; }
  .sort-control { font-size:14px; }
  .sort-control select { font-size:15px; max-width:230px; }
  .property-tag,.property-location,.property-facts,.listing-note,
  .filter-summary,.property-bottom>a { font-size:14px; }
  .property-content h3 { font-size:20px; line-height:1.5; }
  .property-facts i { font-size:16px; }
  .property-bottom strong { font-size:22px; }
  .property-bottom { flex-wrap:wrap; }
  .estate-breadcrumb,.detail-title .eyebrow,.detail-price>span,
  .detail-facts span,.sidebar-phone,.sidebar-reference,.print-expose,
  .detail-disclaimer,.detail-cover>span,.lightbox-counter,.lightbox-caption { font-size:14px!important; }
  .detail-sidebar h2 { font-size:25px; }
  .detail-text h2 { font-size:27px; }
  .detail-availability dl>div { grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); }
  .detail-availability dd { overflow-wrap:anywhere; }

  /* Both lower sections stay dark green; brand-green text passes 6.037:1. */
  .estate-contact,.estate-footer { background:var(--brand-dark)!important; color:var(--brand-primary); }
  .estate-contact h2,.estate-contact p:not(.eyebrow),
  .contact-links a,.contact-links span,.contact-links i { color:var(--brand-primary)!important; }
  .contact-links a { font-size:17px; padding-right:28px; overflow-wrap:anywhere; }
  .contact-links span { font-size:14px; }
  .contact-links a:hover { color:var(--brand-tint)!important; }
  .contact-links a:focus-visible,.estate-footer a:focus-visible { outline-color:var(--brand-primary); }
  .estate-footer,.footer-upper p,.footer-legal,.footer-lower { font-size:14px; color:var(--brand-primary); }
  .footer-upper p { line-height:1.8; }
  .footer-upper { align-items:center; }
  .footer-wordmark { height:80px; }
  .footer-wordmark img { position:static; transform:none; background:#fff; border-radius:2px; }
  .footer-legal { flex-wrap:wrap; gap:12px 22px; }
  .footer-lower { flex-wrap:wrap; }
  .estate-footer a:hover { color:var(--brand-tint); }
  .footer-lower>span:nth-child(2) { display:inline; }

  .estate-legal { padding-bottom:64px; }
  .legal-content { max-width:880px; }
  .legal-heading { margin:20px 0 30px; }
  .legal-heading h1 { font-size:42px; margin-bottom:16px; overflow-wrap:anywhere; }
  .legal-lead { font-size:17px; line-height:1.8; }
  .legal-notice { background:var(--brand-tint); color:var(--brand-dark); border-left:3px solid var(--brand-focus); padding:22px 24px; margin-bottom:28px; }
  .legal-notice p { margin:8px 0 0; }
  .legal-toc { display:flex; flex-wrap:wrap; gap:10px 24px; padding:0 0 26px; border-bottom:1px solid var(--line); }
  .legal-content a { color:var(--brand-focus); text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
  .legal-content a:hover { color:var(--brand-link-hover); }
  .legal-section { padding:32px 0!important; border-bottom:1px solid var(--line); font-size:16px; line-height:1.8; }
  .legal-section h2 { font-size:27px; line-height:1.4; margin-bottom:18px; }
  .legal-section address { font-style:normal; }
  .legal-section li { margin:8px 0; }
  .legal-section p:last-child { margin-bottom:0; }
  .legal-details summary { font-weight:600; cursor:pointer; margin-bottom:18px; }
  .legal-details summary:focus-visible { outline:3px solid var(--brand-focus); outline-offset:4px; }
  @media(max-width:767px) {
    .hero-intro,.detail-text,.detail-sidebar>p:not(.eyebrow) { font-size:16px; }
    .listing-tools { flex-wrap:wrap; gap:12px 20px; }
    .legal-heading h1 { font-size:32px; }
    .legal-section h2 { font-size:25px; }
    .legal-notice { padding:18px; }
    .footer-lower { gap:12px 20px; }
    .contact-links a { font-size:16px; }
  }
  @media(max-width:479px) {
    .property-content h3 { font-size:22px; }
    .property-bottom strong { font-size:22px; }
    .footer-upper p,.footer-lower { font-size:14px; }
    .search-fields select { font-size:16px; }
  }
}

/* Published Estate refinement: compact mobile header and text-only footer. */
@media screen {
  .footer-upper { grid-template-columns:minmax(0,1fr) auto; }
}
@media screen and (max-width:767px) {
  .estate-topbar { display:none; }
  .estate-header-inner { min-height:72px; }
  .estate-brand img { width:56px; height:56px; }
  .estate-nav-toggle { min-width:44px; min-height:44px; padding:6px; }
  .search-fields select { padding-right:20px; font-size:16px; }
  .footer-upper { grid-template-columns:minmax(0,1fr); gap:16px; }
  .footer-legal { justify-content:flex-start; }
}
@media screen and (max-width:359px) {
  .search-fields { grid-template-columns:minmax(0,1fr); }
}

/* Legal pages start directly with their substantive information. */
@media screen {
  .legal-heading { margin-bottom:24px; }
  .legal-heading + .legal-section { padding-top:0!important; }
}
