@layer site-blocks.horizon {
/* Horizon compositions. Pack origin never fixes the user's palette or replaces their content. */
html:has(:is(.layout-horizon,.layout-estal)) { scroll-behavior: auto; }
body .broker-site:is(.has-horizon-hero,.has-estal-hero) { padding-inline: 24px; max-width: 1600px; }
body .broker-site :is(.layout-horizon,.layout-estal) { --resolved-title-size: var(--block-title-size, 52px); overflow-wrap: anywhere; }
body .broker-site :is(.layout-horizon,.layout-estal) h1,
body .broker-site :is(.layout-horizon,.layout-estal) h2 { text-transform: uppercase; font-weight: 650; letter-spacing: -.045em; line-height: 1.06; margin: 0 0 24px; text-wrap: balance; }
body .broker-site :is(.layout-horizon,.layout-estal) p { font-size: 18px; line-height: 1.55; margin: 0 0 24px; }
body .broker-site :is(.layout-horizon,.layout-estal) p:empty { display: none; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; border-radius: 99px; font-size: 16px; line-height: 1.4; padding: 16px 24px; font-weight: 500; text-align: left; }
.horizon-arrow { width: 24px; height: 24px; flex: 0 0 24px; vertical-align: middle; }
body .broker-site :is(.layout-horizon,.layout-estal) .horizon-eyebrow { display: inline-flex; width: fit-content; border: 1px solid color-mix(in srgb,currentColor,transparent 78%); border-radius: 99px; padding: 7px 15px; margin: 0 0 22px; font: 400 14px/1.3 "Geist Variable",Arial,sans-serif; letter-spacing: 0; color: inherit; text-transform: none; }
/* The photo is a real media-library image; a neutral scrim keeps arbitrary user photos readable. */
body .broker-site .broker-site-hero:is(.layout-horizon,.layout-estal) { --resolved-title-size: var(--block-title-size, 68px); position: relative; isolation: isolate; grid-template-columns: 1fr; gap: 0; min-height: 650px; border-radius: var(--resolved-radius); padding: 0; background: var(--block-background,var(--site-accent)); color: var(--block-text,#fff); }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-hero-copy { z-index: 2; max-width: 1020px; padding: var(--resolved-top) 32px var(--resolved-bottom); align-self: end; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-hero-copy p { font-size: 24px; line-height: 1.45; max-width: 530px; opacity: 1; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-hero-copy h1 { margin-bottom: 22px; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-portrait { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; min-height: 0; aspect-ratio: auto; border-radius: inherit; z-index: 0; background: transparent; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-portrait img { min-height: 0; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-portrait > span { display: none; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-portrait:has(img)::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,#0008 0%,#0003 62%,#0000 100%); pointer-events: none; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-hero-copy .broker-site-button { background: var(--block-accent,var(--site-background)); color: var(--block-on-accent,var(--site-text)); padding: 10px 12px 10px 24px; gap: 20px; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-hero-copy .horizon-arrow { border-radius: 50%; box-sizing: content-box; padding: 10px; background: var(--site-text); color: var(--site-background); }
.horizon-location { position: absolute; right: 28px; bottom: 26px; z-index: 2; max-width: 40%; border: 1px solid currentColor; border-radius: 99px; padding: 9px 16px; font-size: 14px; }
/* Open editorial listings; no invented property facts or decorative controls. */
body .broker-site .broker-site-section:is(.layout-horizon,.layout-estal) { padding-inline: 16px; }
body .broker-site :is(.layout-horizon,.layout-estal) > header { max-width: none; text-align: left; margin: 0 0 40px; display: grid; grid-template-columns: minmax(0,1fr) 270px; gap: 0 48px; align-items: end; }
body .broker-site :is(.layout-horizon,.layout-estal) > header .horizon-eyebrow { grid-column: 1/-1; }
body .broker-site :is(.layout-horizon,.layout-estal) > header h2 { margin: 0; }
body .broker-site :is(.layout-horizon,.layout-estal) > header p { margin: 0; font-size: 16px; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-properties { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 44px 28px; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-properties > a { display: block; color: inherit; box-shadow: none; transform: none; transition: none; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-property-image { position: relative; display: block; height: auto; aspect-ratio: 1.3; background: color-mix(in srgb,currentColor,transparent 93%); }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-property-image img { display: block; }
.horizon-deal { position: absolute; top: 16px; left: 16px; font: 400 13px/1.3 "Geist Variable",Arial,sans-serif; padding: 7px 13px; border-radius: 99px; color: #17201c; background: #fff; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-properties small { display: block; margin: 16px 0 6px; padding: 0; color: inherit; opacity: .65; font-size: 14px; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-properties h3 { margin: 0 0 8px; padding: 0; min-height: 0; font-size: 23px; font-weight: 500; line-height: 1.25; letter-spacing: -.025em; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-properties > a > b { display: block; margin: 0; font-size: 22px; font-weight: 500; }
.horizon-property-facts { display: flex; flex-wrap: wrap; gap: 18px; border-top: 1px solid color-mix(in srgb,currentColor,transparent 82%); margin-top: 18px; padding-top: 16px; font-size: 14px; opacity: .7; }
.horizon-property-facts > span { display: inline-flex; align-items: center; gap: 8px; }
.horizon-property-facts svg { width: 20px; height: 20px; flex-shrink: 0; }
/* Numbered services and a quieter, two-column personal story share editable repeaters. */
body .broker-site .broker-site-story:is(.layout-horizon,.layout-estal) { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; padding-inline: 16px; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-story-image { aspect-ratio: .95; object-fit: cover; height: 100%; max-height: 780px; }
.horizon-media { margin:0; border-radius:var(--resolved-radius); overflow:hidden; height:100%; }
.horizon-media img { display:block; width:100%; height:100%; object-fit:cover; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=expertise] { --resolved-title-size: var(--block-title-size, 44px); }
.horizon-points { padding: 0; margin: 32px 0; }
.horizon-points > div { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 12px 20px; border-top: 1px solid color-mix(in srgb,currentColor,transparent 82%); padding: 20px 0; }
.horizon-points dt { font-size: 18px; font-weight: 500; line-height: 1.4; }
.horizon-points dd { margin: 0; font-size: 16px; line-height: 1.5; opacity: .7; }
[data-site-section=expertise] .horizon-points > div { grid-template-columns: 40px minmax(0,1fr); padding: 26px 0; gap: 7px 24px; }
[data-site-section=expertise] .horizon-points > div:first-child { border: 0; }
[data-site-section=expertise] .horizon-points > div > span { grid-row: span 2; opacity: .45; font-size: 15px; padding-top: 6px; }
[data-site-section=expertise] .horizon-points dt { font-size: 26px; font-weight: 600; }
[data-site-section=expertise] .horizon-points dd { grid-column: 2; }
.horizon-text-link { display: inline-flex; align-items: center; gap: 18px; text-underline-offset: 5px; font-size: 16px; }
.horizon-text-link svg { border: 1px solid currentColor; border-radius: 50%; padding: 7px; box-sizing: content-box; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=faq] { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 80px; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=faq] > header { display: block; margin: 0; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=faq] h2 { margin-bottom: 28px; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=faq] header p { font-size: 18px; max-width: 350px; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-faq { display: block; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-faq details { padding: 0; border: 0; border-top: 1px solid color-mix(in srgb,currentColor,transparent 80%); border-radius: 0; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-faq details:last-child { border-bottom: 1px solid color-mix(in srgb,currentColor,transparent 80%); }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 0; font-size: 22px; font-weight: 450; line-height: 1.35; list-style: none; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-faq summary::-webkit-details-marker { display: none; }
body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-faq p { margin: 0; padding: 0 40px 32px 0; font-size: 17px; }
.horizon-faq-icon { width: 30px; height: 30px; flex: 0 0 30px; }
details[open] .horizon-plus { display: none; }
/* A real CRM form, inverted through the same user-controlled palette. */
body .broker-site .broker-site-contact:is(.layout-horizon,.layout-estal) { grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); align-items: start; gap: 64px; padding: var(--resolved-top) 48px var(--resolved-bottom); margin: 32px 0 0; border-radius: var(--resolved-radius); background: var(--block-background,var(--site-accent)); color: var(--block-text,var(--site-on-accent,#fff)); box-shadow: none; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] > div > span { display: none; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] { --resolved-title-size: var(--block-title-size,60px); }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] > div > p { color: inherit; font-size: 18px; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] > aside { padding: 0; background: transparent; color: inherit; border: 0; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] form { gap: 22px; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] label { color: inherit; font-size: 14px; font-weight: 400; gap: 10px; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] input,
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] textarea,
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] select { width: 100%; color: inherit; background: transparent; border: 1px solid color-mix(in srgb,currentColor,transparent 60%); border-radius: min(var(--resolved-radius),12px); font: 400 16px/1.5 "Geist Variable",Arial,sans-serif; padding: 15px; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] input { min-height: 56px; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] option { color: #17201c; background: #fff; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] input::placeholder,
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] textarea::placeholder { color: inherit; opacity: .55; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] button[type=submit] { display: flex; align-items: center; justify-content: space-between; gap: 20px; background: var(--block-accent,var(--site-background)); color: var(--block-on-accent,var(--site-text)); font-size: 16px; font-weight: 500; border-radius: 99px; padding: 16px 24px; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] form > small { color: inherit; opacity: .7; font-size: 12px; }
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] [data-form-error],
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] [data-field-error] { color: inherit; opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
.horizon-contact-image { display: block; width: 100%; aspect-ratio: 1.6; object-fit: cover; border-radius: var(--resolved-radius); margin: 28px 0; }
body .broker-site :is(.layout-horizon,.layout-estal) .horizon-contact-name { font-size: 13px!important; margin: 20px 0 0; }
body .broker-site :is(.layout-horizon,.layout-estal) a:focus-visible,
body .broker-site :is(.layout-horizon,.layout-estal) summary:focus-visible,
body .broker-site :is(.layout-horizon,.layout-estal) button:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
@media(max-width: 1100px) {
  body .broker-site :is(.layout-horizon,.layout-estal) { --resolved-title-size: var(--block-title-size,40px); }
  body .broker-site .broker-site-hero:is(.layout-horizon,.layout-estal) { --resolved-title-size: var(--block-title-size,clamp(44px,6vw,60px)); }
  body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=expertise] { --resolved-title-size: var(--block-title-size,32px); }
  body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] { --resolved-title-size: var(--block-title-size,44px); }
  body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-properties { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body :is(.has-horizon-hero,.has-estal-hero) .broker-site-mobile-nav { display: block; margin-left: auto; position: relative; z-index: 10; }
  body :is(.has-horizon-hero,.has-estal-hero) .broker-site-mobile-nav summary { display: flex; cursor: pointer; list-style: none; }
  body :is(.has-horizon-hero,.has-estal-hero) .broker-site-mobile-nav summary::-webkit-details-marker { display: none; }
  body :is(.has-horizon-hero,.has-estal-hero) .broker-site-mobile-nav[open] nav { display: flex; position: absolute; right: 0; top: calc(100% + 18px); width: max-content; max-width: min(320px,calc(100vw - 48px)); padding: 20px; gap: 18px; flex-direction: column; align-items: flex-start; background: var(--site-background); border: 1px solid color-mix(in srgb,var(--site-text),transparent 80%); border-radius: 12px; box-shadow: 0 6px 20px #17332614; }
  body .broker-site .broker-site-story:is(.layout-horizon,.layout-estal) { gap: 36px; }
  body .broker-site :is(.layout-horizon,.layout-estal) > header { grid-template-columns: 1fr; gap: 20px; }
  body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=faq] { gap: 40px; }
  body .broker-site .broker-site-contact:is(.layout-horizon,.layout-estal) { gap: 32px; padding-inline: 32px; }
}
@media(max-width: 700px) {
  body .broker-site:is(.has-horizon-hero,.has-estal-hero) { padding-inline: 16px; }
  body .broker-site :is(.layout-horizon,.layout-estal) { --resolved-title-size: var(--mobile-title-size,var(--block-title-size,34px)); --resolved-top: var(--mobile-spacing-top,var(--block-spacing-top,40px)); --resolved-bottom: var(--mobile-spacing-bottom,var(--block-spacing-bottom,40px)); }
  body .broker-site .broker-site-hero:is(.layout-horizon,.layout-estal) { --resolved-title-size: var(--mobile-title-size,var(--block-title-size,clamp(28px,8vw,36px))); display: grid; min-height: 600px; padding: 0; }
  body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-hero-copy { padding: var(--resolved-top) 22px max(76px,var(--resolved-bottom)); width: 100%; }
  body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-hero-copy p { font-size: 18px; }
  body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-hero-copy .broker-site-button { font-size: 14px; padding-left: 16px; gap: 10px; }
  body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-hero-copy .horizon-arrow { padding: 8px; width: 20px; height: 20px; flex-basis: 20px; }
  body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-portrait { width: 100%; height: 100%; order: 0; border-radius: inherit; }
  .horizon-location { max-width: calc(100% - 44px); bottom: 22px; left: 22px; right: auto; font-size: 12px; }
  body .broker-site .broker-site-section:is(.layout-horizon,.layout-estal),
body .broker-site .broker-site-story:is(.layout-horizon,.layout-estal) { padding-inline: 4px; }
  body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-properties,
body .broker-site .broker-site-story:is(.layout-horizon,.layout-estal),
body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=faq],
body .broker-site .broker-site-contact:is(.layout-horizon,.layout-estal) { grid-template-columns: 1fr; gap: 32px; }
  body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-properties h3 { font-size: 24px; }
  body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-story-image { order: var(--mobile-media-first,1); aspect-ratio: 1.1; max-height: 400px; }
  body .broker-site :is(.layout-horizon,.layout-estal) > .horizon-media { order:var(--mobile-media-first,1); height:auto; }
  body .broker-site :is(.layout-horizon,.layout-estal)[data-mobile-frame] .horizon-media img { object-position:var(--mobile-photo-x) var(--mobile-photo-y)!important; transform:scale(var(--mobile-photo-zoom))!important; }
  body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=expertise] { --resolved-title-size: var(--mobile-title-size,var(--block-title-size,34px)); }
  body .broker-site :is(.layout-horizon,.layout-estal) .broker-site-faq summary { font-size: 20px; padding: 22px 0; }
  body .broker-site .broker-site-contact:is(.layout-horizon,.layout-estal) { padding-inline: 24px; margin-top: 20px; }
  body .broker-site :is(.layout-horizon,.layout-estal)[data-site-section=contact] { --resolved-title-size:var(--mobile-title-size,var(--block-title-size,34px)); }
  body .broker-site :is(.layout-horizon,.layout-estal) p { font-size: 17px; }
  .horizon-points > div { grid-template-columns: 1fr; gap: 8px; }
}
}
