:root {
  --rh-blue: #4791fb;
  --rh-blue-dark: #1d4f9c;
  --rh-navy: #10233f;
  --rh-gold: #c4a15a;
  --rh-gold-deep: #6f5214;
  --rh-text: #1c2838;
  --rh-muted: #5c6b7c;
  --rh-line: #e3e8ef;
  --rh-bg: #f4f7fb;
  --rh-font: Montserrat, sans-serif;
  --rh-display: Raleway, Montserrat, sans-serif;
  --cover: 20px;
  --video: 14px;
  --photo: 12px;
  --control: 10px;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 80px; }
body { margin: 0; color: var(--rh-text); background: var(--rh-bg); font-family: var(--rh-font); font-size: 16px; line-height: 1.5; }
img { max-width: 100%; }
a { color: var(--rh-blue-dark); }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--rh-blue); outline-offset: 2px; }
.skip { position: absolute; left: 12px; top: -40px; background: #fff; padding: 8px; }
.skip:focus { top: 8px; }
.vh { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.wrap { width: min(1200px, calc(100% - 32px)); margin: 0 auto; }
.site-header { background: var(--rh-navy); color: #fff; }
.header-row { display: flex; align-items: center; gap: 24px; min-height: 72px; }
.brand img { height: 42px; width: auto; display: block; }
.mobile-nav { display: none; margin-left: auto; position: relative; }
.mobile-nav .drop-panel { right: 0; left: auto; }
.site-nav { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.nav-link, .drop summary { color: #fff; text-decoration: none; padding: 8px 10px; cursor: pointer; list-style: none; }
.nav-link:hover, .drop summary:hover { color: #f6d98a; }
.drop { position: relative; }
.drop summary::-webkit-details-marker { display: none; }
.drop-panel { position: absolute; top: 100%; left: 0; min-width: 220px; background: #fff; border-radius: 8px; padding: 8px 0; box-shadow: 0 12px 30px rgba(16, 35, 63, .18); z-index: 5; }
.drop-panel a { display: block; padding: 8px 16px; color: var(--rh-blue-dark); text-decoration: none; }
.drop-panel a:hover { background: #f3f6fb; }
.site-footer { background: #fff; border-top: 4px solid var(--rh-line); margin-top: 64px; padding: 40px 0 24px; color: var(--rh-muted); }
.footer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.site-footer h2 { font-size: 14px; letter-spacing: .04em; text-transform: uppercase; color: var(--rh-navy); }
.site-footer a { color: var(--rh-muted); text-decoration: none; }
.site-footer a:hover { color: var(--rh-blue-dark); }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.fine-print { margin-top: 24px; font-size: 14px; }
.crumbs { padding: 18px 0 8px; color: var(--rh-muted); font-size: 14px; }
.crumbs a { color: var(--rh-muted); text-decoration: none; }
h1 { font-family: var(--rh-display); font-weight: 700; font-size: 46px; line-height: 1.15; margin: 8px 0 12px; color: var(--rh-navy); }
h2 { font-family: var(--rh-display); font-size: 28px; margin: 0 0 16px; color: var(--rh-navy); }
h3 { margin: 0 0 8px; color: var(--rh-navy); }
.lede, .note { max-width: 68ch; color: var(--rh-muted); }
.filters { display: none; gap: 8px; margin: 24px 0; }
html.js .filters { display: block; }
.filter-label { font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rh-muted); margin: 14px 0 8px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip, .country-select { border: 1px solid var(--rh-line); background: #fff; border-radius: 999px; padding: 8px 14px; color: var(--rh-text); }
.chip[aria-pressed="true"] { background: var(--rh-navy); color: #fff; border-color: var(--rh-navy); }
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.card { display: flex; flex-direction: column; background: #fff; border-radius: 16px; text-decoration: none; color: inherit; overflow: hidden; min-height: 100%; box-shadow: 0 8px 24px rgba(16, 35, 63, .06); }
.card-cover { height: 120px; background: linear-gradient(120deg, var(--rh-blue-dark), var(--rh-blue)); position: relative; }
.card-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.card-cover-empty { background-image: radial-gradient(circle at 80% 40%, rgba(255,255,255,.18) 0 8px, transparent 9px); background-size: 42px 36px; }
.card-logo { width: 72px; height: 72px; margin: -36px 16px 8px; background: #fff; border-radius: 14px; display: grid; place-items: center; box-shadow: 0 8px 18px rgba(16, 35, 63, .12); }
.card-logo img { width: 56px; height: 32px; object-fit: contain; }
.card-name, .card-meta { padding: 0 16px; }
.card-name { font-weight: 700; color: var(--rh-navy); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.card-meta { color: var(--rh-muted); font-size: 14px; }
.card-meta:last-child { padding-bottom: 16px; }
.badge { display: inline-flex; align-items: center; gap: 4px; background: #f8efd8; color: var(--rh-gold-deep); border-radius: 999px; padding: 3px 8px; font-size: 12px; font-weight: 700; }
.hex { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.badge .hex { width: 12px; height: 12px; fill: var(--rh-gold); stroke: none; }
.icon { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 1.7; vertical-align: -2px; }
.profile { padding-bottom: 40px; }
.cover { height: 380px; border-radius: var(--cover); overflow: hidden; position: relative; background: #123; }
.cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cover::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 90px; background: linear-gradient(transparent, rgba(8, 16, 32, .55)); }
.credit { position: absolute; right: 14px; bottom: 10px; z-index: 1; color: #fff; font-size: 12px; text-shadow: 0 1px 2px rgba(0,0,0,.6); }
.cover-empty { height: 220px; background: linear-gradient(100deg, var(--rh-navy), var(--rh-blue)); }
.cover-empty::before { content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: 46%; background-image: radial-gradient(circle, rgba(255,255,255,.16) 0 10px, transparent 11px); background-size: 54px 46px; }
.columns { display: grid; grid-template-columns: minmax(0, 1fr) 380px; column-gap: 56px; align-items: start; }
.has-cover .side { margin-top: -200px; }
.no-cover .side { margin-top: -120px; }
.side { position: sticky; top: 24px; }
.logo-tile { width: 128px; height: 128px; margin-top: -64px; background: #fff; border-radius: 22px; display: grid; place-items: center; box-shadow: 0 14px 30px rgba(16, 35, 63, .16); position: relative; z-index: 1; }
.logo-tile img { width: 160px; max-width: 78%; height: 80px; object-fit: contain; }
.details { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--rh-muted); margin: 0 0 8px; }
.relation { display: flex; gap: 8px; align-items: flex-start; color: var(--rh-text); }
.relation .hex { color: var(--rh-gold); margin-top: 4px; flex: none; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; position: relative; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: var(--control); text-decoration: none; border: 1px solid var(--rh-line); background: #fff; color: var(--rh-navy); cursor: pointer; }
.button-line:hover { border-color: var(--rh-blue); }
.button-fill { background: linear-gradient(90deg, var(--rh-blue-dark), var(--rh-blue)); color: #fff; border: 0; width: 100%; min-height: 50px; font-weight: 700; }
.text-link { color: var(--rh-blue-dark); font-weight: 600; text-decoration: none; }
.facts { display: flex; gap: 0; margin: 28px 0 8px; padding-top: 8px; border-top: 1px solid var(--rh-line); }
.fact { padding: 0 22px 0 0; margin-right: 22px; border-right: 1px solid var(--rh-line); max-width: 170px; }
.fact:last-child { border-right: 0; }
.fact-value { margin: 0; font-family: var(--rh-display); font-size: 32px; color: var(--rh-blue-dark); font-weight: 700; }
.fact-label { margin: 0; color: var(--rh-muted); font-size: 13px; }
.block { margin-top: 64px; }
.about { font-size: 17.5px; line-height: 1.7; max-width: 66ch; }
.original { margin-top: 12px; }
.player { position: relative; display: block; width: 100%; padding: 0; border: 0; background: #000; border-radius: var(--video); overflow: hidden; aspect-ratio: 16 / 9; cursor: pointer; }
.player img, .player iframe, .player video { width: 100%; height: 100%; object-fit: cover; display: block; }
.play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 64px; height: 64px; border-radius: 50%; background: #fff; color: var(--rh-navy); display: grid; place-items: center; }
.play .icon { width: 28px; height: 28px; }
.player-meta { position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: space-between; gap: 12px; padding: 28px 14px 12px; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.65)); text-align: left; }
.video-note { color: var(--rh-muted); font-size: 14px; }
.video-row { display: flex; gap: 12px; margin-top: 12px; }
.video-choice { display: flex; gap: 10px; align-items: center; text-align: left; background: transparent; border: 0; padding: 0; cursor: pointer; color: inherit; }
.video-choice img { width: 120px; height: 68px; object-fit: cover; border-radius: 8px; }
.quote-mark { font-family: var(--rh-display); font-size: 64px; color: var(--rh-gold); line-height: 1; }
.quote blockquote { margin: 0; }
.quote blockquote p { font-family: var(--rh-display); font-style: italic; font-size: 27px; line-height: 1.35; max-width: 30ch; color: var(--rh-navy); }
.quote figcaption { display: flex; gap: 12px; align-items: center; margin-top: 16px; }
.quote img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.split h3 { display: flex; gap: 8px; align-items: center; }
.split .hex { color: var(--rh-blue); }
.offer { border-radius: var(--cover); padding: 28px; color: #fff; background: linear-gradient(110deg, var(--rh-navy), var(--rh-blue)); position: relative; overflow: hidden; }
.offer::after { content: ""; position: absolute; right: -20px; top: -30px; width: 180px; height: 180px; background-image: radial-gradient(circle, rgba(196,161,90,.35) 0 12px, transparent 13px); background-size: 48px 42px; }
.offer p { position: relative; font-family: var(--rh-display); font-size: 26px; margin: 8px 0 0; }
.offer-label { font-family: var(--rh-font); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: #f6d98a; display: flex; gap: 6px; align-items: center; }
.event { display: grid; grid-template-columns: 76px 1fr auto; gap: 16px; align-items: center; padding: 16px 0; border-top: 1px solid var(--rh-line); }
.date-tile { width: 76px; height: 76px; border-radius: 14px; background: #e7f0ff; color: var(--rh-blue-dark); display: grid; place-items: center; text-align: center; }
.date-tile span:first-child { font-size: 26px; font-weight: 700; line-height: 1; }
.date-tile span:last-child { font-size: 12px; }
.event-note { color: var(--rh-gold-deep); display: flex; gap: 6px; align-items: center; }
.timeline { list-style: none; margin: 0; padding: 0 0 0 8px; border-left: 2px solid #f0e2c2; }
.timeline li { display: grid; grid-template-columns: 90px 1fr; gap: 16px; padding: 0 0 22px 16px; position: relative; }
.timeline li::before { content: ""; width: 12px; height: 12px; border: 2px solid var(--rh-gold); border-radius: 50%; background: #fff; position: absolute; left: -7px; top: 4px; }
.connect-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.connect { display: flex; gap: 10px; align-items: center; text-decoration: none; color: inherit; }
.connect-logo { width: 56px; height: 56px; border-radius: 12px; background: #fff; display: grid; place-items: center; box-shadow: 0 6px 16px rgba(16,35,63,.08); }
.connect-logo img { width: 40px; height: 24px; object-fit: contain; }
.mosaic { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 168px; gap: 10px; }
.shot { padding: 0; border: 0; background: transparent; border-radius: var(--photo); overflow: hidden; cursor: pointer; }
.shot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mosaic .shot:first-child { grid-row: span 2; }
.resource { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 14px 0; border-top: 1px solid var(--rh-line); }
.pill { background: #e7f0ff; color: var(--rh-blue-dark); border-radius: 999px; padding: 4px 10px; font-size: 12px; font-weight: 700; }
.share-block { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.share-block h2 { margin: 0; }
.share-menu { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.share-menu.hidden { display: none; }
.share-menu.hidden.is-open { display: flex; position: absolute; top: 100%; left: 0; background: #fff; padding: 8px; border-radius: 12px; box-shadow: 0 12px 30px rgba(16,35,63,.16); z-index: 4; }
.share-menu button, .share-menu a { border: 1px solid var(--rh-line); background: #fff; border-radius: 999px; padding: 8px 12px; text-decoration: none; color: var(--rh-navy); }
.back { margin-top: 28px; }
.contact-card { background: #fff; border: 1px solid var(--rh-line); border-radius: var(--cover); box-shadow: 0 18px 50px rgba(16, 35, 63, .16); padding: 28px; }
.contact-card h2 { font-size: 26px; line-height: 1.2; }
.contact-card > p { margin: 0 0 14px; overflow-wrap: anywhere; }
.contact-card form { display: grid; gap: 10px; }
.contact-card label { display: grid; gap: 4px; font-size: 14px; font-weight: 600; }
.contact-card input, .contact-card select, .contact-card textarea { min-height: 44px; border: 1px solid var(--rh-line); border-radius: var(--control); padding: 8px 10px; background: #fff; }
.contact-card textarea { min-height: 92px; resize: vertical; }
.pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.check { grid-template-columns: auto 1fr; align-items: flex-start; font-weight: 500; }
.check input { min-height: 0; margin-top: 4px; }
.count { font-weight: 500; color: var(--rh-muted); font-size: 12px; }
.property-note { display: none; margin: 0; color: var(--rh-muted); font-size: 13px; }
label:has(select[name="role"] option[value="A home buyer, seller or renter"]:checked) + .property-note { display: block; }
.card-note { color: var(--rh-muted); font-size: 13px; display: flex; gap: 6px; align-items: flex-start; }
.hp { position: absolute; left: -10000px; height: 1px; width: 1px; overflow: hidden; }
.form-error { color: #8d1d1d; margin: 0; }
.success-copy { font-size: 16px; }
.contact-bar, .sheet-backdrop { display: none; }
.lightbox { border: 0; padding: 16px; max-width: min(960px, 94vw); }
.lightbox::backdrop { background: rgba(10, 16, 28, .72); }
.lightbox img { width: 100%; max-height: 70vh; object-fit: contain; }
.lightbox-close { position: absolute; right: 8px; top: 8px; }
.empty { margin-top: 24px; }
.status-page { min-height: 40vh; padding-top: 48px; }
@media (max-width: 980px) {
  .card-grid, .connect-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .wrap { width: auto; margin: 0 16px; }
  .site-nav { display: none; }
  .mobile-nav { display: block; }
  .mobile-nav .drop-panel { position: absolute; }
  .crumbs { display: none; }
  h1 { font-size: 32px; }
  .card-grid, .connect-grid, .split { grid-template-columns: 1fr; }
  .columns { display: block; }
  .side { display: none; margin: 0; position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 30; max-height: 94vh; overflow: auto; background: #fff; border-radius: 22px 22px 0 0; padding: 12px 16px 24px; }
  .side.is-open { display: block; }
  .side.is-open::before { content: ""; display: block; width: 42px; height: 4px; border-radius: 4px; background: #c5ced8; margin: 4px auto 10px; }
  .sheet-backdrop.is-open { display: block; position: fixed; inset: 0; background: rgba(10, 16, 28, .5); z-index: 25; }
  .contact-bar { display: flex; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; background: #fff; border-top: 1px solid var(--rh-line); padding: 10px 16px; z-index: 20; }
  .contact-bar .button-fill { width: auto; flex: 1; }
  .profile { padding-bottom: 88px; }
  .cover, .cover-empty { width: 100vw; margin-left: calc(50% - 50vw); border-radius: 0; height: 210px; }
  .logo-tile { width: 92px; height: 92px; margin-top: -46px; border-radius: 16px; }
  .social-link, .card-note { display: none; }
  .facts { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--rh-line); }
  .fact { border-right: 0; margin: 0; padding: 12px 12px 0 0; max-width: none; }
  .block { margin-top: 44px; }
  .quote blockquote p { font-size: 22px; }
  .video-row { display: grid; }
  .event { grid-template-columns: 76px 1fr; }
  .event-link { grid-column: 2; }
  .mosaic { grid-template-columns: 1fr 1fr; grid-auto-rows: 120px; }
  .mosaic .shot:first-child { grid-column: 1 / -1; grid-row: auto; min-height: 180px; }
  .resource { grid-template-columns: 1fr; }
  .share-block { display: block; }
}
