/* ==========================================================================
   pages.css: page-only layout for About, Contact, Thank-you, Privacy, the seller page, the buyer checklist and
   the search page's "new listings like these" box (partials/search-alert prints this file on the search page).
   Components (lead-form, channel-card, booking, agent-card, steps, faq, facts, prose, toc) come from site.css;
   this file only places them. Mobile-first, breakpoints 640 / 980 / 1200, semantic tokens only.
   Page classes (mirror in DESIGN.md §3.7 page layouts): .contact-hero*, .contact-office*, .contact-booking__photo,
   .about*, .about-block*, .about-quote, .about-why*, .about-focus*, .about-chips, .about-links*, .about-gallery*,
   .privacy*, .thanks*, .thanks-prepare*, .thanks-checklist*, .sell-*, .checklist-*, .checklist*, .search-alert*.
   ========================================================================== */

/* ---------------------------------------------------------------- Contact */
.contact-hero > .container{ align-items:start; gap:var(--space-7); }
.contact-hero__intro{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-5); align-content:start; min-width:0; }
.contact-hero__channels{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-5); padding-top:var(--space-4); }
.contact-hero__channels .channel-card__value{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
/* Rows without an action button: keep label/value/note in the first column (site.css only pins the note). */
.contact-hero__channels .channel-card__label,.contact-hero__channels .channel-card__value{ grid-column:1; }
.contact-hero__channels .channel-card--primary .channel-card__value .icon{ color:var(--icon-accent); }
.contact-hero__form{ min-width:0; }
.contact-hero__form .lead-form > p:not([class]){ margin-top:-8px; font-size:15px; line-height:1.55; color:var(--text-2); }
@media (min-width:980px){
  .contact-hero > .container{ grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:var(--space-7); }
}
@media (min-width:1200px){
  .contact-hero > .container{ gap:var(--space-8); }
}

.contact-booking__photo{ width:96px; height:96px; aspect-ratio:1; object-fit:cover; border-radius:50%; }
.booking__embed iframe{ width:100%; min-height:640px; border:0; border-radius:var(--radius-sm); background:var(--surface); }
.booking__embed:has(iframe){ place-items:stretch; padding:0; }
.booking__embed > .placeholder--block{ max-width:420px; text-align:center; }

.contact-office{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-6); align-items:center; }
.contact-office__text{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-4); align-content:start; min-width:0; }
.contact-office__text h2{ max-width:18ch; }
.contact-office__text > .btn--link{ justify-self:start; }
.contact-office__note{ max-width:52ch; color:var(--text-2); }
.contact-office__map{ min-width:0; }
.contact-office__map .placeholder--media{ --ratio:16/9; border-radius:var(--radius-md); }
/* Brokerage panel (official RCR artwork) where the office map would be. */
.contact-office__brand{
  display:grid; justify-items:center; gap:var(--space-4); margin:0; padding:clamp(28px,5vw,48px);
  border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--white); text-align:center;
}
.contact-office__brand img{ display:block; width:min(100%,220px); height:auto; }
.contact-office__brand figcaption{ font:500 13px/1.4 var(--font-mono); letter-spacing:.03em; color:#4A5568; }
@media (min-width:980px){
  .contact-office{ grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:var(--space-8); }
  .contact-office__map .placeholder--media{ --ratio:16/10; }
}

/* ---------------------------------------------------------------- About */
.breadcrumb + .about{ padding-top:var(--space-6); }
.about__intro{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-4); }
.about__title{ font-size:var(--fs-h1); line-height:1.05; max-width:20ch; }
.about__lede{ font-size:var(--fs-lede); line-height:1.55; color:var(--text-2); max-width:60ch; }
/* The card's name is a <p> (the page H1 lives in the profile column); keep the display face. */
.about .agent-card__name{ font-family:var(--font-display); font-weight:600; letter-spacing:var(--tracking-tight); }

.about-block{
  display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-5); align-content:start; min-width:0;
  padding-top:var(--space-6); border-top:1px solid var(--line);
}
.about-block__title{ font-size:var(--fs-h3); line-height:1.2; max-width:28ch; }
.about-block > .btn--link{ justify-self:start; }
.about-block .prose{ max-width:var(--measure); }

.about-quote{ margin:0; padding-left:20px; border-left:2px solid var(--accent); }
.about-quote p{ max-width:30ch; font:italic 400 clamp(1.75rem,1.4rem + 1.2vw,2.25rem)/1.25 var(--font-serif); color:var(--text); }
.about-quote .placeholder{ font-size:var(--fs-sm); font-style:normal; }
.about-quote footer{ margin-top:12px; font:500 var(--fs-label)/1.2 var(--font-mono); letter-spacing:var(--tracking-label); text-transform:uppercase; color:var(--eyebrow); }

.about-why{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-6); }
.about-why__item{ display:grid; grid-template-columns:minmax(0,1fr); gap:10px; align-content:start; min-width:0; }
.about-why__icon{ width:var(--icon-lg); height:var(--icon-lg); color:var(--icon-accent); }
.about-why__title{ font:600 17px/1.35 var(--font-sans); letter-spacing:0; }
.about-why__text{ font-size:15px; line-height:1.6; color:var(--text-2); hyphens:auto; }
@media (min-width:640px){ .about-why{ grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--space-6); } }

.about-focus{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-5); }
.about-focus__title{ margin-bottom:12px; font:500 11px/1.3 var(--font-mono); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.about-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.about-chips .chip{ white-space:normal; padding-block:6px; line-height:1.3; text-align:left; }
@media (min-width:640px){ .about-focus{ grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--space-6); } }

.about-links{ display:grid; grid-template-columns:minmax(0,1fr); gap:10px; font-size:var(--fs-sm); line-height:1.55; }   /* TREC links >= 14px (§8.3) */
.about-links a{ color:var(--link); }
.about-links .icon{ width:var(--icon-sm); height:var(--icon-sm); margin-left:4px; vertical-align:-2px; }
.about-links__gloss{ color:var(--muted); }

.about-gallery{ display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.about-gallery__img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius-md); }
@media (min-width:640px){ .about-gallery{ grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* ---------------------------------------------------------------- Privacy */
.privacy__meta{ font-size:var(--fs-xs); line-height:1.6; color:var(--muted); }
.privacy__body h3{ font-size:var(--fs-body); }
.privacy__body .btn{ color:var(--text); }
.privacy__body .data-table caption{ caption-side:top; padding-bottom:8px; text-align:left; font-size:var(--fs-sm); font-weight:600; color:var(--text); }
/* A text table: undo the numeric-table defaults of .data-table (nowrap, right-aligned columns). */
.privacy .privacy__body .data-table :is(th,td){ vertical-align:top; white-space:normal; text-align:left; font-size:var(--fs-sm); line-height:1.5; }
.privacy .privacy__body .data-table :is(th,td):not(:first-child){ padding-left:16px; }
.privacy .privacy__body .data-table thead th{ font:500 var(--fs-micro)/1.2 var(--font-mono); }
.privacy .privacy__body .data-table tbody th{ width:30%; font-weight:600; color:var(--text); }
.privacy .privacy__body .data-table tbody td:last-child{ width:24%; color:var(--text-2); }
.privacy__body .data-table table{ min-width:520px; }
.privacy__body .notice{ font-size:var(--fs-sm); }

/* ---------------------------------------------------------------- Thank-you */
.thanks .hero__title{ max-width:24ch; }
.thanks__title{ margin-bottom:var(--space-6); font-size:var(--fs-h2); line-height:1.1; max-width:22ch; }
.thanks-prepare{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-6); }
.thanks-prepare__head{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-4); align-content:start; min-width:0; }
.thanks-prepare__head .thanks__title{ margin-bottom:0; }
.thanks-prepare__head > .btn--link{ justify-self:start; }
.thanks-prepare__lede{ max-width:48ch; color:var(--text-2); }
.thanks-checklist{ display:grid; grid-template-columns:minmax(0,1fr); min-width:0; }
.thanks-checklist__item{
  display:grid; grid-template-columns:40px minmax(0,1fr); gap:16px; align-items:start;
  padding-block:18px; border-bottom:1px solid var(--line);
}
.thanks-checklist__item:first-child{ border-top:1px solid var(--line); }
.thanks-checklist__icon{ width:40px; height:40px; padding:9px; border-radius:50%; background:var(--surface); color:var(--icon-accent); }
.thanks-checklist__title{ font:600 var(--fs-h4)/1.3 var(--font-sans); letter-spacing:0; }
.thanks-checklist__text{ margin-top:4px; font-size:15px; line-height:1.55; color:var(--text-2); }
@media (min-width:980px){
  .thanks-prepare{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:var(--space-8); }
  .thanks-prepare__notice{ grid-column:2; }
}

/* Photo credits */
.credits{ display:grid; grid-template-columns:minmax(0,1fr); gap:0; margin:0; padding:0; list-style:none; }
.credits__item{ display:grid; grid-template-columns:96px minmax(0,1fr); gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line); }
.credits__thumb{ width:96px; height:64px; object-fit:cover; border-radius:var(--radius-sm); background:var(--surface-2); }
.credits__subject{ font-weight:600; }
.credits__line{ font-size:var(--fs-sm); color:var(--text-2); overflow-wrap:anywhere; }

/* ---------------------------------------------------------------- Seller page and checklist form (hero + form card) */
/* Guide components (.guide-layout, .guide-section, .guide-cards, .guide-table, .guide-sources) come from invest.css. */
:is(.sell-hero,.checklist-hero) > .container{ align-items:start; gap:var(--space-7); }
:is(.sell-hero__intro,.checklist-hero__intro){ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-5); align-content:start; min-width:0; }
:is(.sell-hero__form,.checklist-hero__form){ min-width:0; scroll-margin-top:calc(var(--header-h) + 16px); }
:is(.sell-hero__form,.checklist-hero__form) .lead-form > p:not([class]){ margin-top:-8px; font-size:15px; line-height:1.55; color:var(--text-2); }
.sell-hero .hero__title,.checklist-hero .hero__title{ max-width:18ch; }
.sell-hero__points{ display:grid; grid-template-columns:minmax(0,1fr); gap:14px; margin:0; padding:0; list-style:none; }
.sell-hero__points li{ display:grid; grid-template-columns:24px minmax(0,1fr); gap:12px; align-items:start; font-size:var(--fs-body); line-height:1.5; color:var(--text-2); }
.sell-hero__points b{ color:var(--text); font-weight:600; }
.sell-hero__icon{ width:var(--icon-lg); height:var(--icon-lg); color:var(--icon-accent); }
.sell-rail__cta{ white-space:normal; text-align:center; }
.sell-note{ font-size:var(--fs-sm); color:var(--muted); }
@media (min-width:980px){
  :is(.sell-hero,.checklist-hero) > .container{ grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:var(--space-7); }
}
@media (min-width:1200px){
  :is(.sell-hero,.checklist-hero) > .container{ gap:var(--space-8); }
}

/* ---------------------------------------------------------------- Buyer checklist */
.checklist-hero__subtitle{ font:600 var(--fs-h4)/1.3 var(--font-sans); letter-spacing:0; }
.checklist-preview{ display:grid; grid-template-columns:minmax(0,1fr); gap:0 var(--space-5); margin:-8px 0 0; padding:0; list-style:none; }
.checklist-preview li{
  display:grid; grid-template-columns:32px minmax(0,1fr); gap:8px; align-items:baseline;
  padding-block:10px; border-bottom:1px solid var(--line); font-size:15px; line-height:1.45; color:var(--text);
}
.checklist-preview__num{ font:500 var(--fs-micro)/1.6 var(--font-mono); letter-spacing:.08em; color:var(--eyebrow); }
@media (min-width:640px){ .checklist-preview{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

.checklist-open .hero__title{ max-width:20ch; }
.checklist-open__head{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-4); }
.checklist-open__meta{ font-size:var(--fs-xs); line-height:1.6; color:var(--muted); }
.checklist-body__inner{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-6); }
.checklist-body__inner > *{ max-width:880px; }
.checklist{ display:grid; grid-template-columns:minmax(0,1fr); margin:0; padding:0; list-style:none; counter-reset:none; }
.checklist__item{
  display:grid; grid-template-columns:28px minmax(0,1fr); gap:16px; align-items:start;
  padding-block:var(--space-5); border-top:1px solid var(--line); scroll-margin-top:calc(var(--header-h) + 16px);
}
.checklist__item:last-child{ border-bottom:1px solid var(--line); }
.checklist__check{ width:24px; height:24px; margin:4px 0 0; accent-color:var(--positive); cursor:pointer; }
.checklist__check:focus-visible{ box-shadow:var(--ring); border-radius:4px; }
.checklist__body{ display:grid; grid-template-columns:minmax(0,1fr); gap:10px; min-width:0; }
.checklist__num{ display:flex; align-items:center; gap:8px; font:500 var(--fs-micro)/1.4 var(--font-mono); letter-spacing:.08em; color:var(--eyebrow); }
.checklist__icon{ width:var(--icon-md); height:var(--icon-md); color:var(--icon-accent); }
.checklist__title{ font:600 var(--fs-h4)/1.3 var(--font-sans); letter-spacing:0; }
.checklist__title label{ cursor:pointer; }
.checklist__text{ max-width:68ch; font-size:15px; line-height:1.65; color:var(--text-2); }
.checklist__text a{ color:var(--link); }
.checklist__text strong{ color:var(--text); }
.checklist__item.is-done .checklist__title{ color:var(--muted); text-decoration:line-through; text-decoration-thickness:1px; }
.checklist-sources{ display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-4); }
.checklist-sources__title{ font-size:var(--fs-h3); line-height:1.2; }
.checklist-sources__url{ display:none; color:var(--muted); }
.checklist-print{ display:none; }

/* ---------------------------------------------------------------- Search page: "new listings like these" */
.search-alert{
  display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-5); min-width:0;
  padding:var(--space-5); border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--surface);
}
.search-alert__intro{ display:grid; grid-template-columns:minmax(0,1fr); gap:12px; align-content:start; min-width:0; }
.search-alert__icon{ width:var(--icon-lg); height:var(--icon-lg); color:var(--icon-accent); }
.search-alert__title{ font-size:var(--fs-h3); line-height:1.2; }
.search-alert__text{ max-width:52ch; font-size:15px; line-height:1.6; color:var(--text-2); }
.search-alert__search{ display:grid; gap:4px; padding:12px 14px; border-radius:var(--radius-sm); background:var(--surface-2); font-size:var(--fs-sm); line-height:1.5; color:var(--text); overflow-wrap:anywhere; }
.search-alert__label{ font:500 var(--fs-micro)/1.3 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.search-alert__form{ min-width:0; }
@media (min-width:640px){ .search-alert{ padding:var(--space-6); } }
@media (min-width:980px){
  .search-alert{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:var(--space-7); align-items:start; }
}

/* ---------------------------------------------------------------- Print: the buyer checklist as a clean handout */
@media print{
  .page-checklist .breadcrumb,.page-checklist .cta-band,.page-checklist .site-footer,
  .page-checklist .checklist-open__actions{ display:none !important; }
  .page-checklist .hero--page{ padding-block:0 12px; }
  .page-checklist .hero__title{ font-size:26px; max-width:none; }
  .page-checklist .hero__lede{ font-size:13px; }
  .checklist-body__inner{ gap:16px; padding-inline:0; }
  .checklist-body__inner > *{ max-width:none; }
  .checklist__item{ padding-block:12px; break-inside:avoid; }
  .checklist__text,.checklist-sources .guide-sources__list{ font-size:12px; color:#000; }
  .checklist__text a,.checklist-sources a{ color:#000; text-decoration:none; }
  .checklist-sources__url{ display:inline; }
  .checklist-print{ display:grid; gap:4px; padding-top:12px; border-top:1px solid #000; font-size:12px; line-height:1.5; color:#000; }
  .page-checklist .notice{ font-size:12px; color:#000; }
}
