/* AG custom home search, 0.10.6. Markup: includes/view.php. Contract: docs/idx-custom-search/ARCHITECTURE.md sections 9, 10 and 10.1.
   Brand: black, white, Mineral Gray hairlines. Italiana for display headings, Manrope for everything the visitor operates. Flat fields, no shadow,
   no gradient, no weight above 600, no radius except the Search this area pill (section 14). Gold (#B19A55) appears once, as a thin ring around the
   selected map pin (filled black, white text), never as a text colour, never the only cue, never over a photograph. Every rule is scoped under .ags,
   except the page level states on html and the header offset on body. */

/* ==== 0. Tokens, scope and reset (the reset also cancels theme rules such as .content-section h2 and .content-section p) ==== */
.ags {
  --ags-line: #D8D5CF; --ags-muted: #4D4D4D; --ags-control: #6B6B6B; --ags-gold: #B19A55; --ags-band: #111;
  --ags-display: var(--font-display, "Italiana", serif); --ags-ui: var(--font-sans, "Manrope", sans-serif);
  --ags-gutter: clamp(1.25rem, 4vw, 3rem);                                   /* page margin where the theme container is absent */
  --ags-edge: max(clamp(1.25rem, 6vw, 7rem), calc((100vw - 1280px) / 2));  /* left edge of the theme .section-inner, so the app lines up with the page heading */
  --ags-top: var(--ags-hdr, 0px);                                           /* bottom of the fixed site header, set on <html> by AGIDX.measureHeader, default 0 */
  --ags-pad: max(var(--ags-hdr, 0px), 100px);                               /* room under the fixed header on routes without a photo hero */
  --ags-mb: 0px;                                                            /* bottom inset of the mobile map overlay */
  position: relative; display: block; background: #fff; color: #000; color-scheme: light; text-align: left;
  font: 400 16px/1.5 var(--ags-ui); -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
}
@media (prefers-reduced-motion: no-preference) { body:has(.site-header.is-hidden) .ags { --ags-top: 0px; } }
.ags, .ags *, .ags *::before, .ags *::after { box-sizing: border-box; }
.ags :is(h1, h2, h3, h4, p, ul, ol, li, dl, dt, dd, figure) { margin: 0; padding: 0; max-width: none; color: inherit; font: inherit; letter-spacing: normal; text-transform: none; }
.ags :is(ul, ol) { list-style: none; }
.ags a { color: inherit; text-decoration: none; }
.ags img { display: block; max-width: 100%; height: auto; }
.ags :is(button, input, select, textarea) { margin: 0; border-radius: 0; color: inherit; font: inherit; letter-spacing: inherit; text-transform: none; -webkit-appearance: none; appearance: none; }
.ags button { padding: 0; background: none; border: 0; cursor: pointer; touch-action: manipulation; }
.ags [hidden] { display: none !important; }
.ags .ags-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.ags :focus-visible { outline: 2px solid #000; outline-offset: 3px; }
.ags :is(a[href], button, input, select, textarea, [tabindex]) { scroll-margin-top: 8px; }   /* room for the focus ring, on the focused element itself; the header is cleared by scroll-padding on html */
.ags[tabindex="-1"]:focus { outline: none; }
.ags .ags-icon { flex: none; width: 1.25em; height: 1.25em; fill: currentColor; }

/* ==== 1. Page frame: full width breakout, standalone routes under the fixed header ==== */
.ags--search { margin-inline: calc(50% - 50vw); }   /* leaves the 1280 px container of page 25 and of embeds */
html:has(.ags--search) { overflow-x: clip; }          /* a classic scrollbar makes 100vw wider than the page: clip those few px instead of scrolling */
html:has(.ags) { scroll-padding-top: calc(var(--ags-hdr, 0px) + 16px); }   /* WCAG 2.4.11: a focused control never lands under the fixed site header (scroll-margin on a parent does not reach it) */
html:has(.ags--search) { --ags-tgl-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); --ags-tgl-h: 48px; scroll-padding-bottom: 16px; }   /* Map and List switch geometry, lower on short screens (section 9). The analytics control no longer floats (foundation 0.4.45), so nothing needs clearing */
.ags--search > :not(.ags-layout, .ags-viewtoggle, .ags-hero, noscript) { margin-inline: var(--ags-edge); }
.ags .ags-wrap { width: 100%; max-width: 1280px; margin-inline: auto; padding-inline: var(--ags-gutter); }
.ags--detail, .ags--saved { padding-top: var(--ags-pad); padding-bottom: clamp(3rem, 6vw, 6rem); }
.ags--detail::before, .ags--saved::before, .ags .ags-hero::before { content: ""; position: absolute; inset: 0 0 auto 0; height: var(--ags-pad); background: var(--ags-band); pointer-events: none; }
.ags .ags-hero { position: relative; padding: calc(var(--ags-pad) + clamp(2rem, 4vw, 3.5rem)) var(--ags-edge) clamp(1.5rem, 3vw, 2.5rem); }
.ags .ags-eyebrow { margin-bottom: 12px; font: 500 11px/1.4 var(--ags-ui); letter-spacing: .16em; text-transform: uppercase; }
.ags .ags-hero__title { font: 400 clamp(2rem, 4.4vw, 3.25rem)/1.1 var(--ags-display); letter-spacing: .01em; }
.ags--saved .ags-wrap { padding-top: clamp(2rem, 4vw, 3rem); }
.ags--saved .ags-hero__title { margin-bottom: 24px; }
.ags .ags-noscript { margin-bottom: 16px; padding: 16px 20px; border: 1px solid #000; font-size: 15px; line-height: 1.6; }
/* Standalone routes carry the theme's .ag-idx-results class so the floating contact controls keep clear of listings; the theme's top margin is not wanted on them. */
.ags.ag-idx-results, main.ag-idx-results { margin-top: 0; }
.ags .ags-notice { margin-bottom: 16px; padding: 12px 16px; border: 1px solid var(--ags-line); border-left: 2px solid #000; background: #fff; font-size: 14px; line-height: 1.55; }

/* ==== 2. Buttons, links, badges ==== */
.ags .ags-button, .ags .ags-submit, .ags .ags-more-toggle, .ags .ags-filters__toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: 100%; min-height: 48px; padding: 12px 24px; border: 2px solid #000; background: #fff; color: #000;
  font: 600 14px/1.2 var(--ags-ui); letter-spacing: .1em; text-align: center; text-transform: uppercase; white-space: normal; text-wrap: balance; cursor: pointer; transition: background-color .2s, color .2s;
}
.ags .ags-button--primary, .ags .ags-submit { background: #000; color: #fff; }
.ags .ags-submit.is-dirty { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
.ags--search[data-busy="true"] .ags-submit { cursor: progress; }
.ags .ags-more-toggle::after, .ags .ags-filters__toggle::after { content: ""; width: 7px; height: 7px; margin: -3px 0 0 4px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.ags .ags-more-toggle[aria-expanded="true"]::after, .ags .ags-filters__toggle[aria-expanded="true"]::after { margin-top: 3px; transform: rotate(-135deg); }
.ags .ags-linkbtn, .ags .ags-clear { display: inline-flex; align-items: center; min-height: 44px; padding: 0; font: 600 12px/1.3 var(--ags-ui); letter-spacing: .1em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 5px; cursor: pointer; }
.ags .ags-count { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; margin-left: 8px; padding: 0 6px; background: #000; color: #fff; font: 600 11px/1 var(--ags-ui); letter-spacing: 0; }
.ags .ags-count:empty { display: none; }
.ags .ags-chip { display: inline-flex; align-items: center; min-height: 24px; padding: 4px 10px; border: 1px solid #000; background: #fff; color: #000; font: 500 11px/1.2 var(--ags-ui); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.ags .ags-chip--active { background: #000; color: #fff; }
.ags .ags-chip--other, .ags .ags-chip--sample { background: var(--ags-line); }
.ags .ags-chip--other { border-color: var(--ags-line); }

/* ==== 3. Filters: a compact bar. Tablet and desktop make every field a grid item (display: contents), so DOM order is visual order ==== */
.ags .ags-filters { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px 12px; align-items: end; margin-bottom: 16px; padding: 20px 0; border-block: 1px solid var(--ags-line); }
.ags .ags-filters__primary, .ags .ags-filters__panel, .ags .ags-filters__row, .ags .ags-filters__more { display: contents; }
.ags .ags-filters__toggle { display: none; }
.ags .ags-field { display: block; min-width: 0; }
.ags .ags-field label { display: block; margin-bottom: 6px; font: 500 12px/16px var(--ags-ui); letter-spacing: .04em; text-transform: uppercase; }
.ags .ags-field :is(input, select) { display: block; width: 100%; height: 48px; padding: 0 14px; border: 1px solid var(--ags-control); background-color: #fff; color: #000; font: 400 16px/1.2 var(--ags-ui); }
.ags .ags-field select { padding-right: 40px; text-overflow: ellipsis; cursor: pointer; background-repeat: no-repeat; background-position: right 14px center; background-size: 12px 8px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E"); }
.ags .ags-field input::placeholder { color: var(--ags-control); opacity: 1; }
.ags .ags-field :is(input, select):focus { border-color: #000; }
.ags .ags-field :is(input, select):focus-visible { outline-offset: 2px; }
.ags .ags-field :is(input, select)[aria-invalid="true"] { padding-inline: 13px; border-width: 2px; border-color: #000; }
.ags .ags-field--q { grid-column: span 4; }
.ags .ags-field--price, .ags .ags-field--minbeds, .ags .ags-field--minbaths { grid-column: span 2; }
.ags .ags-field--type, .ags .ags-field--status, .ags .ags-field--minarea, .ags .ags-field--minyear { grid-column: span 3; }
.ags .ags-filters__actions { grid-column: 7 / -1; display: flex; justify-content: flex-end; gap: 12px; }
.ags .ags-dirty, .ags .ags-error { grid-column: 1 / -1; font-size: 14px; line-height: 1.5; }
.ags .ags-dirty { color: var(--ags-muted); }
.ags .ags-error { padding: 10px 14px; border: 1px solid #000; border-left-width: 4px; font-weight: 600; }

/* ==== 4. Active filter chips and the map area note ==== */
.ags .ags-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-bottom: 16px; }
.ags .ags-chips__list { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; max-width: 100%; }
.ags .ags-chip-item { display: inline-flex; align-items: center; min-width: 0; max-width: 100%; min-height: 36px; padding-left: 12px; border: 1px solid #000; background: #fff; }
.ags .ags-chip.ags-chip--filter { min-width: 0; min-height: 0; padding: 8px 0; border: 0; background: none; color: inherit; font: 500 13px/1.3 var(--ags-ui); letter-spacing: 0; text-transform: none; white-space: normal; overflow-wrap: anywhere; }   /* a long location wraps; the remove button stays on screen at 320 px */
.ags .ags-chip__remove { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: -5px -8px -5px -2px; font-size: 20px; line-height: 1; }
.ags .ags-chip__remove:focus-visible { outline-offset: -4px; }
.ags .ags-areanote { display: flex; flex-wrap: wrap; align-items: center; gap: 0 16px; margin-bottom: 16px; padding: 4px 16px; border: 1px solid var(--ags-line); border-left: 2px solid #000; font-size: 14px; line-height: 1.5; }

/* ==== 5. List column: toolbar, counts, result grid, recent ==== */
.ags .ags-list { min-width: 0; padding: 24px var(--ags-edge) 32px; }
.ags .ags-map { display: none; }
.ags .ags-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-bottom: 16px; border-bottom: 1px solid var(--ags-line); }
.ags .ags-summary { font: 400 clamp(1.5rem, 2.2vw, 1.875rem)/1.2 var(--ags-display); letter-spacing: .01em; }
.ags .ags-toolbar__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.ags .ags-field--inline { display: flex; align-items: center; gap: 8px; }
.ags .ags-field--inline label { margin: 0; white-space: nowrap; }
.ags .ags-field--inline select { width: auto; min-width: 0; height: 44px; }
.ags .ags-share, .ags .ags-saved-link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid #000; background: #fff; color: #000; font: 600 12px/1.2 var(--ags-ui); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; cursor: pointer; transition: background-color .2s, color .2s; }
.ags .ags-sharefield { display: block; width: 100%; height: 44px; margin-top: 8px; padding: 0 12px; border: 1px solid var(--ags-control); background: #fff; font-size: 16px; }   /* 16 px or more, so iOS does not zoom when the field takes focus */
.ags .ags-counts { margin: 14px 0 24px; font-size: 13px; line-height: 1.5; color: var(--ags-muted); }
.ags .ags-counts:empty { display: none; }
.ags .ags-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 40px 24px; }
.ags .ags-grid--compact { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 32px 20px; }
.ags .ags-grid > li { min-width: 0; }
.ags .ags-grid.is-loading { opacity: .45; pointer-events: none; transition: opacity .2s; }
.ags .ags-recent { margin-bottom: 64px; padding-top: 32px; border-top: 1px solid var(--ags-line); }
.ags .ags-recent h2 { margin-bottom: 24px; font: 400 1.5rem/1.3 var(--ags-display); letter-spacing: .02em; }
.ags .ags-recent .ags-linkbtn { margin-top: 16px; }

/* ==== 6. The card: search, related, recent, saved and the map preview all use it ==== */
.ags .ags-card { position: relative; min-width: 0; }
.ags .ags-card__inner { position: relative; display: flex; flex-direction: column; height: 100%; }
.ags .ags-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ags-line); }
.ags .ags-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease-out; }
.ags .ags-card__noimg { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 16px; text-align: center; font: 500 13px/1.4 var(--ags-ui); color: var(--ags-muted); }
.ags .ags-card__chips { position: absolute; top: 12px; left: 12px; z-index: 1; display: flex; flex-wrap: wrap; gap: 6px; max-width: calc(100% - 72px); }
.ags .ags-card__idx-mark { position: absolute; z-index: 1; right: 8px; bottom: 8px; display: flex; align-items: center; max-width: 72px; min-height: 28px; padding: 3px; background: rgba(255,255,255,.94); }
.ags .ags-card__idx-mark img { display: block; width: 66px; height: auto; max-height: 38px; object-fit: contain; }
.ags .ags-save { position: absolute; z-index: 2; top: 8px; right: 8px; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; background: rgb(255 255 255 / .92); color: #000; transition: background-color .2s, color .2s; }
.ags .ags-save .ags-icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
.ags .ags-save[aria-pressed="true"] .ags-icon, .ags .ags-save.is-saved .ags-icon { fill: currentColor; }
.ags .ags-save:focus-visible, .ags .ags-gallery__all:focus-visible { outline: 2px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 2px #000; }
.ags .ags-card__body { display: flex; flex-direction: column; gap: 4px; padding: 16px 0 0; }
.ags .ags-card__price { font: 500 20px/1.3 var(--ags-ui); font-variant-numeric: tabular-nums; }
.ags .ags-card__title { font: 400 16px/1.45 var(--ags-ui); overflow-wrap: anywhere; }
.ags .ags-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ags .ags-card__place { font-size: 14px; line-height: 1.5; color: var(--ags-muted); }
.ags .ags-card__facts { display: flex; flex-wrap: wrap; gap: 4px 0; margin-top: 4px; font: 600 13px/1.4 var(--ags-ui); letter-spacing: .04em; text-transform: uppercase; }
.ags .ags-card__facts li + li::before { content: "\00B7"; margin: 0 6px; }
.ags .ags-card__facts--none { font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ags-muted); }
.ags .ags-card__credit, .ags .ags-card__nomap { font-size: 12px; line-height: 1.5; color: var(--ags-muted); }
.ags .ags-card__credit { margin-top: 8px; }
.ags .ags-card__mapbtn { position: relative; z-index: 2; display: inline-flex; align-items: center; align-self: flex-start; gap: 8px; min-height: 44px; margin-top: 2px; font: 600 12px/1.2 var(--ags-ui); letter-spacing: .1em; text-transform: uppercase; }
.ags .ags-card__mapbtn .ags-icon { width: 16px; height: 16px; }
.ags .ags-card.is-selected .ags-card__inner { outline: 2px solid #000; outline-offset: 6px; }
.ags .ags-card.is-hot:not(.is-selected) .ags-card__inner { outline: 1px solid #000; outline-offset: 6px; }
.ags .ags-card--compact .ags-card__body { padding-top: 12px; }
.ags .ags-card--compact .ags-card__price { font-size: 18px; }
.ags .ags-card--compact .ags-card__title { font-size: 14px; }
.ags .ags-card--compact .ags-card__facts { font-size: 12px; }
.ags .ags-card--skeleton .ags-card__media, .ags .ags-skel { background: var(--ags-line); }
.ags .ags-skel { display: block; height: 14px; margin-top: 6px; opacity: .65; }
.ags .ags-skel--price { width: 38%; height: 22px; }
.ags .ags-skel--title { width: 72%; }
.ags .ags-skel--line { width: 50%; }
.ags .ags-card--gone .ags-card__inner { justify-content: center; min-height: 220px; padding: 24px; border: 1px solid var(--ags-line); }
.ags .ags-card--gone .ags-card__body { align-items: flex-start; gap: 16px; padding: 0; }
.ags .ags-card--gone .ags-card__price { font-size: 18px; line-height: 1.4; }
.ags--saved .ags-card__mapbtn, .ags--saved .ags-card__nomap { display: none; }

/* ==== 7. State box, pagination, attribution ==== */
.ags .ags-state { max-width: 720px; margin: 32px auto; padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid var(--ags-line); background: #fff; text-align: center; }
.ags .ags-state[data-kind="error"], .ags .ags-state[data-kind="invalid"] { border-left: 2px solid #000; text-align: left; }
.ags .ags-state__title { margin-bottom: 12px; font: 400 clamp(1.5rem, 3vw, 1.75rem)/1.25 var(--ags-display); letter-spacing: .01em; }
.ags .ags-state__text { max-width: 52ch; margin: 0 auto 24px; color: var(--ags-muted); }
.ags .ags-state__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.ags .ags-state[data-kind="error"] .ags-state__text, .ags .ags-state[data-kind="invalid"] .ags-state__text { margin-left: 0; }
.ags .ags-state[data-kind="error"] .ags-state__actions, .ags .ags-state[data-kind="invalid"] .ags-state__actions { justify-content: flex-start; }
.ags .ags-state__title:only-child, .ags .ags-state__text:last-child { margin-bottom: 0; }
.ags .ags-pagination { margin-top: 48px; }
.ags .ags-pagination__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ags .ags-pagination__link, .ags .ags-pagination__gap { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px; font: 500 14px/1 var(--ags-ui); font-variant-numeric: tabular-nums; }
.ags .ags-pagination__link { border: 1px solid var(--ags-line); transition: border-color .2s; }
.ags .ags-pagination__link[aria-current="page"] { border-color: #000; background: #000; color: #fff; font-weight: 600; }
.ags .ags-pagination__gap { min-width: 24px; padding: 0; }
.ags .ags-pagination__note { margin: 20px 0 0; text-align: center; font-size: 14px; line-height: 1.55; color: var(--ags-muted); }
.ags .ags-attribution { margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--ags-line); }
.ags .ags-attribution:empty { display: none; }
.ags .ags-attribution__line { max-width: 80ch; margin-bottom: 6px; font-size: 12px; line-height: 1.6; color: var(--ags-muted); }
.ags .ags-attribution__line--required { color: #000; }
.ags .ags-attribution__brand { display: flex; align-items: center; gap: 10px; max-width: 80ch; margin: 14px 0 0; font-size: 12px; line-height: 1.5; color: var(--ags-muted); }
.ags .ags-attribution__brand img { display: block; width: 72px; height: auto; max-height: 54px; object-fit: contain; }

/* ==== 8. Map column, price pins, clusters, the selected home preview ==== */
.ags .ags-map__bar { position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 6px 16px; border-bottom: 1px solid var(--ags-line); background: #fff; }
.ags .ags-map__chip { font: 500 13px/1.3 var(--ags-ui); letter-spacing: .02em; }
.ags .ags-map__area { min-height: 44px; padding: 0 16px; border: 1px solid #000; background: #fff; font: 600 12px/1.2 var(--ags-ui); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.ags .ags-map__canvas { position: relative; flex: 1 1 auto; min-height: 0; overflow: hidden; background: var(--ags-line); }
.ags--search[data-map="loading"] .ags-map__canvas::before { content: "Loading map"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font: 500 13px/1 var(--ags-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--ags-muted); }
.ags .ags-map__fallback:not([hidden]) { position: absolute; inset: 0; z-index: 10; display: flex; align-items: center; justify-content: center; padding: 72px 32px 32px; background: #fff; text-align: center; font-size: 15px; line-height: 1.6; }
.ags .ags-pin { position: absolute; z-index: 1; display: block; min-height: 32px; padding: 6px 10px; border: 1px solid #000; background: #fff; color: #000; font: 600 12px/1.2 var(--ags-ui); white-space: nowrap; translate: -50% calc(-100% - 7px); cursor: pointer; }
.ags .ags-pin::before { content: ""; position: absolute; inset: -6px -4px -14px; }
.ags .ags-pin::after { content: ""; position: absolute; left: 50%; bottom: -7px; margin-left: -6px; border: 6px solid transparent; border-top-color: #000; border-bottom: 0; }
.ags .ags-pin__label { display: block; }
.ags .ags-pin.is-hot { z-index: 5; background: #000; color: #fff; }
.ags .ags-pin.is-selected { z-index: 6; background: #000; color: #fff; outline: 3px solid var(--ags-gold); outline-offset: 1px; }   /* black fill (21:1 against the white pins), gold only as the ring */
.ags .ags-pin--dot { width: 16px; min-height: 0; height: 16px; padding: 0; border-width: 2px; translate: -50% -50%; }
.ags .ags-pin--dot::after { display: none; }
.ags .ags-cluster { position: absolute; z-index: 2; display: block; min-width: 44px; height: 40px; padding: 0 12px; border: 2px solid #fff; background: #000; color: #fff; font: 600 13px/36px var(--ags-ui); white-space: nowrap; translate: -50% -50%; cursor: pointer; }
.ags .ags-preview { position: absolute; z-index: 5; left: 16px; bottom: 16px; display: flex; flex-direction: column; width: min(400px, calc(100% - 32px)); max-height: calc(100% - 56px - 32px); }
.ags .ags-preview__card { flex: 1 1 auto; min-height: 0; padding: 12px; border: 1px solid #000; background: #fff; overflow-y: auto; overscroll-behavior: contain; }   /* a short screen scrolls the card, never the Close button */
.ags .ags-preview__card .ags-card__inner { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; align-items: start; height: auto; }
.ags .ags-preview__card .ags-card__body { gap: 2px; padding: 0 36px 0 0; }
.ags .ags-preview__card .ags-card__price { font-size: 18px; }
.ags .ags-preview__card .ags-card__title { font-size: 14px; }
.ags .ags-preview__card .ags-card__facts { margin-top: 2px; font-size: 12px; }
.ags .ags-preview__card .ags-card__media { aspect-ratio: auto; overflow: visible; background: none; }
.ags .ags-preview__card :is(.ags-card__img, .ags-card__noimg) { height: auto; aspect-ratio: 4 / 3; background: var(--ags-line); }
.ags .ags-preview__card .ags-card__chips { position: static; gap: 4px; max-width: none; margin-top: 8px; }
.ags .ags-preview__card :is(.ags-card__mapbtn, .ags-card__nomap, .ags-card__credit) { display: none; }
.ags .ags-preview__card .ags-button { width: 100%; margin-top: 12px; }
.ags .ags-preview__close { position: absolute; top: 1px; right: 1px; z-index: 3; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: #fff; color: #000; }
.ags .ags-preview__close svg { width: 20px; height: 20px; fill: currentColor; }
.ags .ags-detail-map { position: relative; height: clamp(260px, 34vw, 380px); border: 1px solid var(--ags-line); background: var(--ags-line); overflow: hidden; }
.ags .ags-detail-map .ags-pin--dot { width: 18px; height: 18px; background: #000; border-color: #fff; }
.ags .ags-detail-map__note { display: flex; align-items: center; justify-content: center; height: 100%; padding: 24px; text-align: center; font-size: 14px; color: var(--ags-muted); }

/* ==== 9. Map and List toggle, tablet and phone only. Sticky at the bottom centre while the list is on screen, so it never floats over the hero,
   the concierge form or the footer. Fixed while the map overlay is open (page scroll is locked then). ==== */
.ags .ags-viewtoggle { position: sticky; z-index: 37; bottom: var(--ags-tgl-bottom); display: flex; align-items: center; justify-content: center; gap: 10px; width: fit-content; max-width: calc(100% - 24px); min-height: var(--ags-tgl-h); margin: 0 auto; padding: 0 24px; border: 2px solid #000; background: #000; color: #fff; font: 600 13px/1.2 var(--ags-ui); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; transition: background-color .2s, color .2s; }
@media (max-height: 520px) { html:has(.ags--search) { --ags-tgl-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); --ags-tgl-h: 44px; } }   /* landscape phones and 400 percent zoom: the switch no longer covers a third of the screen */
.ags--search[data-view="map"] .ags-viewtoggle { position: fixed; left: 50%; margin: 0; translate: -50% 0; }
.ags .ags-viewtoggle:focus-visible { outline-color: #000; box-shadow: 0 0 0 3px #fff; }
.ags .ags-viewtoggle::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ags-viewicon) center / contain no-repeat; mask: var(--ags-viewicon) center / contain no-repeat;
  --ags-viewicon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 110-5 2.5 2.5 0 010 5z'/%3E%3C/svg%3E"); }
.ags--search[data-view="map"] .ags-viewtoggle::before { --ags-viewicon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18v2H3zm0 6h18v2H3zm0 6h18v2H3z'/%3E%3C/svg%3E"); }

/* ==== 10. Detail page ==== */
.ags .ags-detail__nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 20px 0 16px; }
.ags .ags-back { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font: 600 12px/1.2 var(--ags-ui); letter-spacing: .1em; text-transform: uppercase; }
.ags .ags-back .ags-icon { width: 18px; height: 18px; }
.ags .ags-gallery { position: relative; display: grid; gap: 8px; height: clamp(320px, 40vw, 560px); margin-bottom: 32px; }
.ags .ags-gallery--many { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.ags .ags-gallery--many .ags-gallery__cell:first-child { grid-row: 1 / 3; }
.ags .ags-gallery--two { grid-template-columns: 1fr 1fr; }
.ags .ags-gallery--one { grid-template-columns: 1fr; }
.ags .ags-gallery--none { height: auto; }
.ags .ags-gallery__none { display: flex; align-items: center; justify-content: center; min-height: 240px; padding: 24px; background: var(--ags-line); text-align: center; }
.ags .ags-gallery__cell { display: block; min-width: 0; min-height: 0; overflow: hidden; background: var(--ags-line); cursor: zoom-in; }
.ags .ags-gallery__cell img { width: 100%; height: 100%; object-fit: cover; }
.ags .ags-gallery__cell:focus-visible { outline: 2px solid #000; outline-offset: -2px; box-shadow: inset 0 0 0 4px #fff; }
.ags .ags-gallery__all { position: absolute; right: 16px; bottom: 16px; z-index: 2; min-height: 44px; padding: 0 18px; border: 1px solid #000; background: #fff; font: 600 12px/1.2 var(--ags-ui); letter-spacing: .1em; text-transform: uppercase; transition: background-color .2s, color .2s; }
.ags .ags-lightbox { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 0; border: 0; overflow: hidden; background: #000; color: #fff; }
.ags .ags-lightbox[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; touch-action: pan-y pinch-zoom; overscroll-behavior: contain; }   /* a sideways swipe belongs to the viewer, never to the browser */
.ags .ags-lightbox::backdrop { background: #000; }
.ags .ags-lightbox :focus-visible { outline-color: #fff; }
.ags .ags-lightbox__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; }
.ags .ags-lightbox__count { font: 500 12px/1.4 var(--ags-ui); letter-spacing: .12em; text-transform: uppercase; }
.ags .ags-lightbox__close { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid #fff; color: #fff; }
.ags .ags-lightbox__close .ags-icon { width: 24px; height: 24px; }
.ags .ags-lightbox__img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.ags .ags-lightbox__nav { display: flex; justify-content: center; gap: 12px; padding: 16px; }
.ags .ags-lightbox__nav button { min-height: 48px; padding: 0 24px; border: 1px solid #fff; color: #fff; font: 600 12px/1.2 var(--ags-ui); letter-spacing: .1em; text-transform: uppercase; transition: background-color .2s, color .2s; }
html:has(.ags-lightbox[open]) { overflow: hidden; overscroll-behavior: none; }   /* no overscroll back navigation while the viewer is open (a right swipe left the listing) */
.ags .ags-detail__layout { display: flex; flex-direction: column; }
.ags .ags-detail__lead, .ags .ags-detail__main { min-width: 0; }   /* DOM order is reading order at every width: head and key facts, then the actions card, then the long sections */
.ags .ags-detail__side { margin-bottom: 40px; }
.ags .ags-detail__main > section { margin-bottom: 48px; }
.ags .ags-detail__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.ags .ags-detail__title { font: 400 clamp(1.625rem, 3vw, 2.25rem)/1.2 var(--ags-display); letter-spacing: .03em; text-transform: uppercase; overflow-wrap: anywhere; }
.ags .ags-detail__place { margin-top: 8px; color: var(--ags-muted); }
.ags .ags-detail__price { margin-top: 16px; font: 400 clamp(2rem, 6vw, 2.5rem)/1.1 var(--ags-display); }
.ags .ags-keyfacts { display: flex; flex-wrap: wrap; margin: 32px 0 40px; border-block: 1px solid var(--ags-line); }
.ags .ags-keyfacts li { margin-right: 24px; padding: 16px 24px 16px 0; border-right: 1px solid var(--ags-line); font: 500 17px/1.3 var(--ags-ui); }
.ags .ags-keyfacts li:last-child { margin-right: 0; padding-right: 0; border-right: 0; }
.ags .ags-detail__main > section > h2, .ags .ags-related h2 { margin-bottom: 16px; font: 400 1.5rem/1.3 var(--ags-display); letter-spacing: .02em; text-transform: uppercase; }
.ags .ags-about__text { max-width: 65ch; line-height: 1.7; }
.ags .ags-about__text p + p { margin-top: 12px; }
.ags .ags-about__text.is-clamped { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; overflow: hidden; }
.ags .ags-about .ags-linkbtn, .ags .ags-location .ags-linkbtn { margin-top: 8px; }
.ags .ags-facts dl { border-top: 1px solid var(--ags-line); }
.ags .ags-facts dl > div { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr); align-items: baseline; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--ags-line); }
.ags .ags-facts dt { font: 500 12px/1.6 var(--ags-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--ags-muted); }
.ags .ags-facts dd { font-weight: 500; overflow-wrap: anywhere; }
.ags .ags-sidecard { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 20px; border: 1px solid #000; background: #fff; }
.ags .ags-sidecard__price { display: none; font: 400 40px/1.1 var(--ags-display); }
.ags .ags-sidecard__status { flex: 1 1 100%; font: 500 11px/1.4 var(--ags-ui); letter-spacing: .16em; text-transform: uppercase; color: var(--ags-muted); }
.ags .ags-sidecard .ags-button { flex: 2 1 240px; min-height: 52px; }
.ags .ags-sidecard__tools { display: flex; flex: 1 1 200px; flex-wrap: wrap; gap: 8px; }
.ags .ags-sidecard__tools > * { flex: 1; min-height: 48px; border-width: 2px; }
.ags .ags-sidecard__tools .ags-sharefield { flex: 1 1 100%; margin: 0; border-width: 1px; }
.ags .ags-sidecard__tools .ags-save { position: static; width: auto; gap: 8px; padding: 0 12px; font: 600 12px/1.2 var(--ags-ui); letter-spacing: .1em; text-transform: uppercase; }
.ags .ags-sidecard__tools .ags-save:focus-visible { outline: 2px solid #000; outline-offset: 3px; box-shadow: none; }
.ags .ags-sidecard__tools .ags-save::after { content: "Save"; content: "Save" / ""; }
.ags .ags-sidecard__tools .ags-save[aria-pressed="true"]::after { content: "Saved"; content: "Saved" / ""; }
.ags .ags-related { margin-top: 24px; padding-top: 48px; border-top: 1px solid var(--ags-line); }
.ags .ags-related h2 { margin-bottom: 24px; }
.ags .ags-related .ags-linkbtn { margin-top: 24px; }
.ags--detail .ags-attribution { margin-top: 56px; }

/* ==== 11. Breakpoints 1280, 1100, 1024, 900, 767 ==== */
@media (min-width: 1024px) {
  .ags .ags-layout { display: grid; grid-template-columns: minmax(0, 58fr) minmax(0, 42fr); align-items: start; }
  .ags .ags-list { padding: 24px clamp(16px, 2vw, 32px) 80px var(--ags-edge); }
  .ags .ags-map { position: sticky; top: var(--ags-top); z-index: 1; display: flex; flex-direction: column; height: calc(100vh - var(--ags-top)); height: calc(100svh - var(--ags-top)); min-height: 420px; border-left: 1px solid var(--ags-line); background: #fff; }
  .ags .ags-viewtoggle { display: none !important; }
  .ags .ags-card__mapbtn:not(:focus-visible) { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }  /* keyboard and screen reader path, shown on focus */
  .ags .ags-card__mapbtn:focus-visible { position: absolute; left: 0; bottom: 0; padding: 0 12px; border: 2px solid #000; background: #fff; }
}
@media (min-width: 1100px) {
  .ags .ags-detail__layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; column-gap: 64px; align-items: start; }
  .ags .ags-detail__lead { grid-column: 1; grid-row: 1; }
  .ags .ags-detail__main { grid-column: 1; grid-row: 2; }
  .ags .ags-detail__side { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: calc(var(--ags-top) + 24px); margin-bottom: 0; }
  .ags .ags-detail__price { display: none; }   /* the price shows once: in the side card here, in the head below this width */
  .ags .ags-sidecard { display: block; padding: 28px; }
  .ags .ags-sidecard__price { display: block; }
  .ags .ags-sidecard__status { margin: 8px 0 20px; }
  .ags .ags-sidecard .ags-button { width: 100%; }
  .ags .ags-sidecard__tools { margin-top: 12px; }
}
@media (min-width: 1280px) { .ags .ags-gallery { gap: 12px; } }
@media (min-width: 768px) and (max-width: 1023px) {
  .ags .ags-field--q, .ags .ags-filters__actions { grid-column: 1 / -1; }
  .ags .ags-field--price, .ags .ags-field--minbeds, .ags .ags-field--minbaths { grid-column: span 3; }
  .ags .ags-field--type, .ags .ags-field--status, .ags .ags-field--minarea, .ags .ags-field--minyear { grid-column: span 6; }
}
@media (max-width: 1023px) {
  .ags .ags-layout { display: block; }
  .ags--search[data-view="map"] .ags-map { position: fixed; z-index: 35; inset: var(--ags-top) 0 var(--ags-mb) 0; display: flex; flex-direction: column; height: auto; border-left: 0; background: #fff; }
  .ags--search[data-view="map"] .ags-list, .ags--search[data-view="map"] > :not(.ags-layout, .ags-viewtoggle, .ags-hero) { visibility: hidden; }  /* stays in the DOM so the scroll position survives; the hero keeps the dark band under the header */
  .ags .ags-preview { left: 12px; bottom: calc(var(--ags-tgl-bottom) + var(--ags-tgl-h) + 12px - var(--ags-mb)); width: min(480px, calc(100% - 24px)); max-height: calc(100% - (var(--ags-tgl-bottom) + var(--ags-tgl-h) + 12px - var(--ags-mb)) - 56px - 12px); }   /* stays under the map bar and clear of the switch, in portrait and in landscape */
  html:has(.ags--search) { scroll-padding-bottom: calc(var(--ags-tgl-bottom) + var(--ags-tgl-h) + 16px); }   /* a focused card control never hides behind the floating switch */
  .ags .ags-pin { min-height: 36px; padding: 8px 11px; font-size: 13px; }
}
@media (max-width: 900px) {
  .ags .ags-gallery { height: clamp(300px, 52vw, 440px); }
  .ags .ags-facts dl > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
@media (max-width: 767px) {
  .ags .ags-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 14px 0; }
  .ags .ags-filters__primary { grid-column: 1 / -1; display: flex; align-items: flex-end; gap: 8px; }
  .ags .ags-filters__primary .ags-field--q { flex: 1; }
  .ags .ags-filters__primary .ags-field--q input { padding-inline: 12px; }
  .ags .ags-filters__primary .ags-field--q input::placeholder { font-size: 14px; }
  .ags .ags-filters__toggle { display: inline-flex; gap: 6px; padding: 0 12px; font-size: 12px; letter-spacing: .08em; }
  .ags .ags-filters__toggle .ags-count { margin-left: 2px; }
  .ags .ags-filters__panel { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .ags .ags-filters__primary:has(.ags-filters__toggle[aria-expanded="false"]) + .ags-filters__panel, .ags .ags-filters__primary:has(.ags-filters__toggle[aria-expanded="false"]) ~ .ags-filters__actions .ags-more-toggle { display: none; }
  .ags .ags-field--q, .ags .ags-field--type, .ags .ags-field--status { grid-column: 1 / -1; }
  .ags .ags-field--price, .ags .ags-field--minbeds, .ags .ags-field--minbaths, .ags .ags-field--minarea, .ags .ags-field--minyear { grid-column: auto; }
  .ags .ags-filters__actions { grid-column: 1 / -1; }
  .ags .ags-filters__actions > * { flex: 1; padding-inline: 12px; }
  .ags .ags-toolbar__tools { width: 100%; }
  .ags .ags-field--inline { flex: 1 1 100%; }
  .ags .ags-field--inline select { flex: 1; }
  .ags .ags-toolbar__tools > :is(.ags-share, .ags-saved-link) { flex: 1; }
  .ags .ags-grid { gap: 32px 20px; }
  .ags .ags-gallery { display: block; height: auto; aspect-ratio: 4 / 3; margin-inline: calc(var(--ags-gutter) * -1); }
  .ags .ags-gallery--none { aspect-ratio: auto; }
  .ags .ags-gallery .ags-gallery__cell { width: 100%; height: 100%; }
  .ags .ags-gallery .ags-gallery__cell:not(:first-child) { display: none; }
  .ags .ags-gallery__all { right: 12px; bottom: 12px; }
  .ags .ags-keyfacts { margin: 24px 0 32px; }
  .ags .ags-keyfacts li { margin-right: 16px; padding-right: 16px; font-size: 16px; }
  .ags .ags-lightbox__nav button { flex: 1; padding: 0 12px; }
  .ags .ags-attribution { margin-top: 40px; }
}

/* ==== 12. Hover (pointer devices only, so a tap never leaves a control inverted) ==== */
@media (hover: hover) {
  .ags .ags-button:hover, .ags .ags-more-toggle:hover, .ags .ags-filters__toggle:hover, .ags .ags-share:hover, .ags .ags-saved-link:hover, .ags .ags-save:hover, .ags .ags-map__area:hover, .ags .ags-gallery__all:hover, .ags .ags-chip-item:hover { background: #000; color: #fff; }
  .ags .ags-button--primary:hover, .ags .ags-submit:hover, .ags .ags-viewtoggle:hover { background: #fff; color: #000; }
  .ags :is(.ags-more-toggle, .ags-filters__toggle, .ags-saved-link, .ags-share):hover .ags-count { background: #fff; color: #000; }
  .ags .ags-cluster:hover { background: #fff; color: #000; border-color: #000; }
  .ags .ags-lightbox__nav button:hover { background: #fff; color: #000; }
  .ags .ags-linkbtn:hover, .ags .ags-clear:hover { text-decoration-thickness: 2px; }
  .ags .ags-field :is(input, select):hover { border-color: #000; }
  .ags .ags-pagination__link:hover { border-color: #000; }
  .ags .ags-card__link:hover, .ags .ags-card__mapbtn:hover span, .ags .ags-back:hover span { text-decoration: underline; text-underline-offset: 4px; }
  .ags .ags-chip-item:hover .ags-chip__remove:focus-visible { outline-color: #fff; }
  .ags .ags-card__inner:hover .ags-card__img { transform: scale(1.04); }
  .ags .ags-preview__card .ags-card__inner:hover .ags-card__img { transform: none; }
}

/* ==== 13. Reduced motion, forced colors ==== */
@media (prefers-reduced-motion: reduce) {
  .ags, .ags *, .ags *::before, .ags *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .ags .ags-card__inner:hover .ags-card__img { transform: none; }
}
@media (forced-colors: active) {
  .ags .ags-field select { -webkit-appearance: auto; appearance: auto; }   /* the chevron is a background image, which forced colors removes */
  .ags .ags-pin.is-selected, .ags .ags-card.is-selected .ags-card__inner { outline: 3px solid Highlight; }
  .ags .ags-card.is-hot .ags-card__inner { outline: 1px solid Highlight; }
  .ags .ags-pagination__link[aria-current="page"] { forced-color-adjust: none; border: 3px solid Highlight; background: Highlight; color: HighlightText; }   /* the current page stays the one filled box */
  .ags .ags-viewtoggle::before { forced-color-adjust: none; background-color: ButtonText; }   /* the mask icon is painted with a system colour, so it is not reset to Canvas */
}
html.ags-noscroll { overflow: hidden; }

/* ==== 14. Bridget visual template pass (0.10.5), presentation only. /search/ (.ags--broad, view.php) takes the For Sale field system of
   idx-location.css, every grid card shares one anatomy, map controls float over the map as white .92 pills. The phone Map and List switch keeps
   its first-screen position (A11Y-17). Copy, labels, query, policy and compliance markup are untouched. ==== */
.ags--broad .ags-filters { gap: 30px 24px; margin-bottom: 24px; padding: 8px 0 0; border: 0; }
.ags--broad .ags-field label { margin-bottom: 2px; font: 600 11px/16px var(--ags-ui); letter-spacing: .12em; }
.ags--broad .ags-field :is(input, select) { height: 46px; padding: 12px 30px 14px 0; border: 0; border-bottom: 1px solid var(--ags-line); background-color: transparent; font-size: 14px; letter-spacing: .06em; }
.ags--broad .ags-field :is(input, select):is(:focus, :hover) { border-color: #000; }
.ags--broad .ags-field :is(input, select)[aria-invalid="true"] { padding-inline: 0 30px; border-width: 0 0 2px; }
.ags--broad .ags-field select { padding-right: 30px; background-position: right 4px center; }
.ags--broad .ags-field--q { position: relative; }
.ags--broad .ags-field--q::before { content: ""; position: absolute; left: 0; bottom: 16px; width: 15px; height: 15px; background: var(--ags-control); -webkit-mask: var(--ags-find) center / contain no-repeat; mask: var(--ags-find) center / contain no-repeat; --ags-find: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27A6.47 6.47 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E"); }
.ags--broad .ags-field--q input { padding-left: 30px; }
.ags--broad .ags-filters__actions > * { min-height: 46px; padding: 12px 28px; border-width: 1px; font-size: 12px; }
.ags--broad .ags-toolbar { padding-bottom: 14px; }
.ags--broad .ags-field--inline label { font: 600 11px/16px var(--ags-ui); letter-spacing: .12em; text-transform: uppercase; }
.ags--broad .ags-field--inline select { height: 44px; padding: 0 28px 0 0; border: 0; border-bottom: 1px solid var(--ags-line); background-color: transparent; background-position: right 4px center; font-size: 14px; letter-spacing: .06em; }
.ags--broad :is(.ags-share, .ags-saved-link) { padding: 0; border: 0; background: none; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.ags .ags-card__chips .ags-chip { min-height: 24px; padding: 5px 8px; border: 0; background: var(--ags-band); color: #fff; font: 400 11px/1.2 var(--ags-ui); letter-spacing: .02em; text-transform: none; }
.ags .ags-grid:not(.ags-grid--compact) .ags-card__chips { top: 12px; left: 16px; gap: 6px; }
.ags .ags-card--grid .ags-card__body { display: block; padding: 14px 0 0; }
.ags .ags-card--grid .ags-card__price { margin-bottom: 6px; font: 400 22px/1.25 var(--ags-display); letter-spacing: .03em; font-variant-numeric: tabular-nums; }
.ags .ags-card--grid :is(.ags-card__title, .ags-card__place) { display: inline; font-size: 13px; line-height: 1.5; color: #000; }
.ags .ags-card--grid .ags-card__place:not(.ags-card__place--withheld)::before { content: ", "; }
.ags .ags-card--grid .ags-card__place--withheld { display: block; color: var(--ags-muted); }
.ags .ags-card--grid .ags-card__body > :is(.ags-card__title, .ags-card__place) + * { margin-top: 4px; }
.ags .ags-card--grid .ags-card__facts { margin-top: 6px; font: 400 12px/1.4 var(--ags-ui); letter-spacing: .04em; text-transform: uppercase; }
.ags .ags-card--grid .ags-card__facts--none { letter-spacing: 0; text-transform: none; color: var(--ags-muted); }
.ags .ags-card--grid .ags-card__credit { margin-top: 8px; font-size: 11px; }
.ags .ags-card--grid .ags-card__mapbtn { margin-top: 6px; }
.ags--broad .ags-map__bar { position: absolute; z-index: 4; top: 12px; left: 12px; right: 12px; min-height: 0; padding: 0; border: 0; background: none; pointer-events: none; }
.ags--broad .ags-map__bar > * { pointer-events: auto; }
.ags .ags-map__chip:not(:empty) { padding: 8px 12px; background: rgb(255 255 255 / .92); font-size: 12px; letter-spacing: .04em; }
.ags .ags-map__area { min-height: 44px; padding: 0 20px; border: 0; border-radius: 999px; background: rgb(255 255 255 / .92); box-shadow: 0 1px 4px rgb(0 0 0 / .18); }
.ags .ags-state:not([data-kind="error"]):not([data-kind="invalid"]) { border-color: transparent; }
@media (hover: hover) {
  .ags--broad :is(.ags-share, .ags-saved-link):hover { background: none; color: #000; text-decoration-thickness: 2px; }
  .ags--broad :is(.ags-share, .ags-saved-link, .ags-filters__toggle):hover .ags-count { background: #000; color: #fff; }
  .ags--broad .ags-filters__toggle:hover { background: none; color: #000; }
}
@media (max-width: 767px) {
  .ags--broad .ags-filters { gap: 18px 16px; padding-top: 0; }
  .ags--broad .ags-filters__primary { flex-direction: column; align-items: stretch; gap: 0; }
  .ags--broad .ags-filters__primary .ags-field--q input { padding-inline: 30px 0; }
  .ags--broad .ags-filters__toggle { justify-content: flex-start; min-height: 52px; padding: 0; border: 0; border-bottom: 1px solid var(--ags-line); background: none; color: var(--ags-muted); font: 500 12px/1 var(--ags-ui); letter-spacing: .14em; }
  .ags--broad .ags-filters__toggle::after { margin-left: auto; }
  .ags--broad .ags-filters__panel { gap: 18px 16px; }
  .ags--broad .ags-field :is(input, select), .ags--broad .ags-field--inline select { font-size: 16px; }   /* 16 px or more, so iOS does not zoom on focus (A11Y-14) */
}
