/*
 * iZAO brand layer.
 *
 * Loaded AFTER the canonical Realtor X stylesheet and, like it, UNLAYERED.
 * This file does not rewrite the template: it re-points the template's own
 * variables at iZAO values and adds the small number of overrides that the
 * accent swap makes unavoidable.
 *
 * Geometry, spacing, typography scale, responsive behaviour and interactions
 * are NOT touched — they belong to the template.
 * (vault: 03 — Design/Canonical Template · iZao_Design_System_Colours)
 */

/* ── 1. The template's 13 variables, re-pointed to iZAO ──────────────────── */
:root {
  /* Identity. The template's coral becomes Electric Green. */
  --primary-1: #39ff14;

  /* Neutrals: the template's palette is already white → near-white →
     soft-grey → mid-grey → near-black. iZAO's is the same shape, warmer. */
  --neutral-100: #ffffff;
  --neutral-200: #f7f7f4; /* warm white */
  --neutral-300: #f2f2ee;
  --neutral-400: #e7e9e8; /* iZAO soft grey */
  --neutral-500: #b4b8b6;
  --neutral-600: #686e6b; /* iZAO muted */
  --neutral-700: #3f4542;
  --neutral-800: #111111; /* iZAO ink */

  /* The template's shadows are blue-black. Warming them is most of what makes
     the result read as a warm neutral system rather than a grey site. */
  --shadow-card: #1a140b0f;
  --shadow-button-secondary: #2b201412;
  --shadow-image: #1a140b24;
  --shadow-badge: #2b201417;

  /* Accent-as-text substitute. #39FF14 on white is 1.36:1 and fails outright;
     this deeper green is 6.47:1 on white and remains at least 5.30:1 across
     iZAO's approved light neutral surfaces. */
  --izao-accent-text: #176b4d;

  /* Semantic (approved) */
  --izao-success: #16a34a;
  --izao-error: #dc2626;
}

/* ── 2. Accent as BACKGROUND → foreground is always ink, never white ──────
   White on #39FF14 measures 1.36:1. Ink on it measures 13.93:1. */
.button-primary.bg-primary-1,
.button-primary:hover,
.button-secondary:hover,
.button-category:hover,
.button-category.w--current,
.social-media-link:hover,
.social-media-link.accent-color,
.menu-button:hover {
  color: var(--neutral-800);
}

/* ── 3. Accent as TEXT → the darker green, never the raw accent ──────────── */
a,
.text-link:hover,
.text-200.text-link.header-nav:hover,
.text-200.text-link.header-dropdown-nav:hover,
.text-300.bold.property-agent-name:hover,
.dropdown-category-toggle:hover,
.header-search-toggle:hover,
.flex.text-200.arrow-link-v2,
.line-rounded-icon.icon-link,
.color-primary,
.rich-text a:hover {
  color: var(--izao-accent-text);
}

/* Webflow's card-title hover interactions carry the donor's coral as an
   inline colour. Keep that interaction, but force its visible state through
   the iZAO accent on property, editorial and professional cards. */
.card-link:hover h2,
.card-link:hover h3,
.card-link:hover .h3-size,
.card-link:hover .h5-size,
.card-agent:hover .link-content h2,
.card-agent:hover .link-content h3,
.link-content:hover h2,
.link-content:hover h3 {
  color: var(--izao-accent-text) !important;
}

/* ── 4. Price stays INK ───────────────────────────────────────────────────
   The template renders the featured price in the accent colour — on the most
   repeated element on the page. Deliberate divergence. */
.text-primary-1,
.h5-size.text-primary-1,
.h1-size.text-medium.text-primary-1 {
  color: var(--neutral-800);
}

/* ── 5. Success and error get REAL semantic colours ───────────────────────
   The template routes both through the accent, which only works because its
   brand is red. Errors must never be green. */
.success-message {
  color: var(--izao-success);
  background-color: #16a34a14;
}
.error-message {
  color: var(--izao-error);
}

/* ── 6. Badge discipline ──────────────────────────────────────────────────
   The template's accent-filled badge sits on EVERY card, which alone exceeds
   the ≤5% accent budget. Purpose badges become white pills; the accent pill is
   reserved for the rare, meaningful signal (Verified — the agent role badge). */
/* F4: search/filter architecture is intentionally parked. Keep the one real
   market control centered in the donor filter row after removing unavailable
   controls; its authored dropdown dimensions and responsive behavior remain. */
.split-content.filters-right.izao-market-only-filters {
  justify-content: center;
  margin-right: 0;
  max-width: 100%;
}
.split-content.filters-right.izao-market-only-filters > .dropdown-category {
  margin-right: 0;
}

.badge-v1.card-property {
  background-color: var(--neutral-100);
  color: var(--neutral-800);
}
.badge-v1.card-agent {
  color: var(--neutral-800);
}

/* F5B: reserve the Realtor X card-photo frame before either donor fallback or
   canonical media arrives. Canonical collection projections currently expose
   width but not height, so the stable donor frame is the honest equivalent of
   per-image intrinsic geometry and keeps mixed media from shifting card
   layout. object-fit: cover remains owned by the template. */
.image-wrapper.card-property {
  aspect-ratio: 1832 / 1030;
}

.izao-card-country {
  min-width: 0;
  overflow: hidden;
}

.izao-card-country > span {
  max-width: 100%;
}

.izao-card-country > span > span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── 7. iZAO logo ─────────────────────────────────────────────────────────
   The template's licensed logo file is replaced by <IZaoLogo /> — the traced
   vector of the approved master artwork — inside the template's own
   .header-logo / .footer-logo slots, so header and footer layout is unchanged
   and the template goes on setting the width responsively (156/140/130px in
   the header, 190/170/150px in the footer).

   All this layer adds is the height. An <svg> given only a width needs
   `height: auto` to take its height from the viewBox; without it the browser
   falls back to the 150px default and the mark stretches.

   Colour is NOT here. A logo does not inherit, so the ink and the Electric
   Green i-dot are fixed inside the component. This replaces the provisional
   text wordmark (dotless ı plus a positioned dot), whose offsets moved with
   the webfont — the dot is now part of the vector. */
.header-logo,
.footer-logo {
  height: auto;
}
.izao-logo {
  display: block;
}

/* ── Public navigation: calm hierarchy, clear actions ─────────────────── */
.header.izao-nav-root {
  z-index: 1000;
  padding-top: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgb(231 233 232 / 84%);
  background: rgb(255 255 255 / 94%);
  box-shadow: 0 5px 24px rgb(17 17 17 / 3%);
  backdrop-filter: blur(16px);
  isolation: isolate;
  transform: none !important;
  transform-style: flat !important;
  perspective: none !important;
  transition: none !important;
  will-change: auto !important;
}
.header.izao-nav-root .container-default { max-width: 1320px; padding-right: 24px; padding-left: 24px; }
.header.izao-nav-root .header-wrapper { min-height: 56px; gap: 28px; }
.header.izao-nav-root .split-content.header-center { flex: 1; justify-content: flex-end; gap: 24px; }
.header.izao-nav-root .header-navigation { gap: clamp(16px, 1.65vw, 28px); }
.header.izao-nav-root .nav-item-wrapper { margin-right: 0; }
.header.izao-nav-root .header-nav {
  position: relative;
  color: #3f4542;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.015em;
  white-space: nowrap;
}
.header.izao-nav-root .header-nav::after {
  position: absolute;
  right: 0;
  bottom: -9px;
  left: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--primary-1);
  content: "";
  opacity: 0;
  transform: scaleX(.35);
  transition: opacity .2s ease, transform .2s ease;
}
.header.izao-nav-root .header-nav:hover::after,
.header.izao-nav-root .header-nav.izao-nav-active::after { opacity: 1; transform: scaleX(1); }
.header.izao-nav-root .header-nav.izao-nav-active { color: var(--neutral-800); }
.header.izao-nav-root .header-nav:focus-visible {
  border-radius: 7px;
  outline: 1px solid #8edb88;
  outline-offset: 0;
  background: #f8fff7;
}
.header.izao-nav-root .split-content.header-left { gap: 10px; }
.izao-mobile-nav-label { display: none; }

.izao-dashboard-link {
  display: inline-flex;
  width: auto;
  height: 42px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-right: 0;
  padding: 0 13px;
  border-color: var(--neutral-400);
  border-radius: 11px;
  color: var(--neutral-800);
  background: #fff;
  box-shadow: 0 3px 10px rgb(17 17 17 / 4%);
  transform: none;
}
.izao-dashboard-link svg { width: 17px; height: 17px; stroke: currentColor; stroke-width: 1.7; }
.izao-dashboard-link-label { font-size: 13px; font-weight: 650; letter-spacing: -.015em; white-space: nowrap; }
.izao-dashboard-link:hover { border-color: #cfd3d1; color: var(--neutral-800); background: var(--neutral-200); transform: translateY(-1px); }
.header.izao-nav-root .button-primary.small.header-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-right: 0;
  padding: 0 18px;
  border-radius: 11px;
  font-size: 13px;
  font-weight: 650;
  white-space: nowrap;
  box-shadow: 0 7px 18px rgb(17 17 17 / 10%);
}

/* ── 8. Language switcher ─────────────────────────────────────────────────
   BUILD NEW — proven absent from the template (hreflang: 0 files across all
   57 pages). Styled from the template's own neutrals and radii so it reads as
   part of the chrome rather than an addition to it. */
.izao-locale-switch {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--neutral-400);
  border-radius: 12px;
  padding: 3px;
  margin-right: 0;
}
.izao-locale-switch a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  place-items: center;
  width: auto;
  min-width: 39px;
  height: 36px;
  color: var(--neutral-600);
  text-decoration: none;
  padding: 0 10px;
  border-radius: 9px;
  transition: background-color 0.2s, transform 0.2s;
}
.izao-locale-switch .locale-label { font-size: 11px; font-weight: 650; line-height: 1; }
.izao-locale-switch .locale-label-short { display: none; }
.izao-locale-switch a:hover {
  background: var(--neutral-300);
  transform: translateY(-1px);
}
.izao-locale-switch a[aria-current="true"] {
  background-color: var(--neutral-800);
  color: var(--neutral-100);
}
.izao-locale-switch .locale-flag {
  display: block;
  width: 23px;
  height: 15px;
  overflow: hidden;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgb(0 0 0 / 15%), 0 1px 3px rgb(0 0 0 / 12%);
}
.izao-locale-switch a:focus-visible {
  outline: 2px solid var(--color-buyer-dark);
  outline-offset: 2px;
}

.izao-dashboard-link:focus-visible {
  outline: 2px solid var(--color-buyer-dark);
  outline-offset: 3px;
}

.nav-item-wrapper.izao-nav-support {
  display: none;
}

@media screen and (max-width: 991px) {
  .nav-item-wrapper.izao-nav-support {
    display: flex;
  }
}

/* ── 9. Typography — Manrope ──────────────────────────────────────────────
 * APPROVED 2026-08-28. Replaces the template's Thicccboi.
 *
 * WHY (measured, canvas ink test at 50px): Thicccboi renders every accented
 * character as a completely blank glyph —
 *     À É é ç à ù ı  → 0 ink pixels   (Arial: 388–604)
 * and draws U+00B2 at full size, identical to "2", so "m²" showed as "m2".
 * The glyphs exist-but-are-blank, so the browser never falls back on its own.
 * That broke two locked decisions: EN+FR from day one, and m² as the V1 area
 * unit. It also removed the unresolved licence question, since Thicccboi is
 * commercial and self-hosting it was never settled.
 *
 * Manrope: SIL Open Font License, full Latin Extended, geometric with a large
 * x-height — the closest of the candidates to the template's own feel.
 * Loaded and self-hosted by next/font in the locale layout.
 *
 * The template sets `font-family: Thicccboi, sans-serif` on body; this
 * re-points it. Headings, buttons and inputs inherit. Geometry, weights and
 * type scale remain the template's.
 */
body,
button,
input,
select,
textarea,
.w-button {
  font-family: var(--font-izao), -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Helvetica, Arial, sans-serif;
}

/* ── 10. Page-load fade ───────────────────────────────────────────────────
 * The template opens every page with an IX2 PAGE_FINISH fade on
 * `.page-wrapper`. MEASURED: that trigger never fires under Next.js, so the
 * page previously appeared instantly (and before that, not at all).
 *
 * Re-created as a real CSS animation. A CSS animation outranks an inline
 * style in the cascade, so this also wins if IX2 applies `opacity: 0` at bind
 * time — no JavaScript unblocking needed.
 *
 * 400ms, just under the template's own 500ms reveal duration, so the page
 * ground settles before its contents arrive.
 */
@keyframes izao-page-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.page-wrapper {
  animation: izao-page-in 400ms ease-out both;
}
@media (prefers-reduced-motion: reduce) {
  .page-wrapper {
    animation-duration: 1ms;
  }
}

@media screen and (min-width: 992px) {
  .header.izao-nav-root .menu-button {
    display: none !important;
  }

  /* Webflow no longer owns this header. Hide any overlay left in the DOM by
   * an older cached runtime while a client navigation completes. */
  .header.izao-nav-root .w-nav-overlay {
    display: none !important;
    pointer-events: none !important;
  }
}

/* ── 11. Deterministic mobile navigation ──────────────────────────────────
 * The public header is intentionally not a `.w-nav`: Webflow never attaches
 * its second navbar controller, never relocates the menu and never creates an
 * overlay. React owns one class and the drawer itself absorbs touch scrolling,
 * so opening it does not freeze or mutate the underlying page.
 */
@media screen and (max-width: 991px) {
  .header.izao-nav-root {
    --izao-mobile-nav-header-height: 77px;
    position: sticky !important;
    top: 0 !important;
    background: #fff;
    backdrop-filter: none !important;
    transform: none !important;
    will-change: auto !important;
  }

  .header.izao-nav-root .w-nav-overlay {
    display: none !important;
    pointer-events: none !important;
  }

  .header.izao-nav-root .menu-button.w-nav-button {
    display: block !important;
    touch-action: manipulation;
  }

  .header.izao-nav-root .nav-menu.w-nav-menu {
    display: block !important;
    position: fixed !important;
    z-index: 1001;
    top: var(--izao-mobile-nav-header-height) !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    height: calc(100dvh - var(--izao-mobile-nav-header-height)) !important;
    max-height: calc(100dvh - var(--izao-mobile-nav-header-height)) !important;
    opacity: 0 !important;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    pointer-events: none !important;
    transform: translateY(-10px) !important;
    transition: opacity .18s ease, transform .24s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .24s !important;
    visibility: hidden;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }

  .header.izao-nav-root.izao-nav-open .nav-menu.w-nav-menu {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
    transition-delay: 0s !important;
    visibility: visible;
  }

  .header.izao-nav-root .split-content.header-left {
    z-index: 1002;
    position: relative;
  }

  /* Keep the open control on the same 50px geometry as its closed state.
   * The donor menu otherwise lets the active button and navigation rows
   * inherit loose spacing, which makes the whole overlay feel off-axis. */
  .header.izao-nav-root .menu-button.w--open {
    width: 50px;
    min-width: 50px;
    max-width: 50px;
    min-height: 50px;
    max-height: 50px;
    padding: 12px;
  }

  .header.izao-nav-root .header-navigation {
    gap: 0;
    margin: 0;
    padding: 10px 24px max(24px, env(safe-area-inset-bottom));
  }

  .header.izao-nav-root .nav-item-wrapper,
  .header.izao-nav-root .nav-item-wrapper.first {
    min-height: 56px;
    align-items: center;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--neutral-400);
  }

  .header.izao-nav-root .header-nav {
    display: flex;
    width: 100%;
    min-height: 56px;
    align-items: center;
    padding: 0;
  }

  .header.izao-nav-root .nav-item-wrapper.button-mobile {
    min-height: 0;
    margin-top: 18px;
    padding: 0;
    border-bottom: 0;
  }

  .header.izao-nav-root .header-button-mobile {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
  }
}

/* ── 12. French homepage-hero containment ────────────────────────────────
 * The donor kept only a short English tail on one line. Its longer French
 * translation is wider than the phone content wrapper, so allow that same
 * phrase to wrap naturally without changing copy or typography.
 */
@media screen and (max-width: 479px) {
  .header.izao-nav-root .menu-button.w--open {
    width: 45px;
    min-width: 45px;
    max-width: 45px;
    min-height: 45px;
    max-height: 45px;
    padding: 10px;
  }

  .header.izao-nav-root .header-navigation {
    padding-right: 16px;
    padding-left: 16px;
  }

  html[lang="fr"] .section.hero .text-breaking-no-wrap {
    white-space: normal;
  }
}

/* ── 13. Public-header responsive refinement ───────────────────────────── */
@media screen and (min-width: 992px) and (max-width: 1240px) {
  .header.izao-nav-root .container-default { padding-right: 18px; padding-left: 18px; }
  .header.izao-nav-root .header-wrapper { gap: 18px; }
  .header.izao-nav-root .split-content.header-center { gap: 16px; }
  .header.izao-nav-root .header-navigation { gap: 14px; }
  .header.izao-nav-root .header-logo { width: 142px; }
  .izao-dashboard-link { width: 42px; padding: 0; }
  .izao-dashboard-link-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .header.izao-nav-root .button-primary.small.header-button { padding-right: 14px; padding-left: 14px; }
}

@media screen and (max-width: 991px) {
  .header.izao-nav-root { padding-top: 12px; padding-bottom: 12px; }
  .header.izao-nav-root .container-default { padding-right: 16px; padding-left: 16px; }
  .header.izao-nav-root .header-wrapper { min-height: 52px; gap: 10px; }
  .header.izao-nav-root .header-logo { width: 132px; }
  .header.izao-nav-root .split-content.header-center,
  .header.izao-nav-root .split-content.header-left { gap: 9px; }
  .header.izao-nav-root .izao-dashboard-link { display: none; }
  .header.izao-nav-root .button-primary.small.header-button { display: none; }
  .header.izao-nav-root .izao-locale-switch { padding: 2px; border-radius: 11px; }
  .header.izao-nav-root .izao-locale-switch a { width: 34px; min-width: 34px; height: 34px; justify-content: center; padding: 0; border-radius: 8px; }
  .header.izao-nav-root .izao-locale-switch .locale-flag { width: 21px; height: 14px; }
  .header.izao-nav-root .izao-locale-switch .locale-label { display: none; }
  .header.izao-nav-root .menu-button,
  .header.izao-nav-root .menu-button.w--open {
    width: 42px;
    min-width: 42px;
    max-width: 42px;
    min-height: 42px;
    max-height: 42px;
    padding: 10px;
    border-radius: 11px;
  }
  .header.izao-nav-root .menu-button:hover,
  .header.izao-nav-root .menu-button:focus-visible,
  .header.izao-nav-root .menu-button.w--open {
    color: #fff;
    background: var(--neutral-800);
    transform: none;
  }
  .header.izao-nav-root .menu-button:focus-visible {
    outline: 2px solid rgb(57 255 20 / 42%);
    outline-offset: 2px;
  }
  .header.izao-nav-root .header-menu-button-icon-wrapper {
    display: grid;
    position: absolute;
    inset: 0;
    margin: 0;
    place-items: center;
  }
  .header.izao-nav-root .header-menu-button-icon-wrapper .icon-wrapper {
    display: block;
    position: relative;
    width: 19px;
    min-height: 14px;
  }
  .header.izao-nav-root .header-menu-button-icon-top,
  .header.izao-nav-root .header-menu-button-icon-medium,
  .header.izao-nav-root .header-menu-button-icon-bottom {
    position: absolute;
    left: 0;
    width: 19px;
    min-height: 2px;
    max-height: 2px;
    border-radius: 99px;
    background: currentColor;
    transform-origin: center;
    transition: transform .2s cubic-bezier(.22, 1, .36, 1), opacity .14s ease;
  }
  .header.izao-nav-root .header-menu-button-icon-top { top: 0; }
  .header.izao-nav-root .header-menu-button-icon-medium { top: 6px; }
  .header.izao-nav-root .header-menu-button-icon-bottom { top: 12px; }
  .header.izao-nav-root .menu-button.w--open .header-menu-button-icon-top { transform: translateY(6px) rotate(45deg) !important; }
  .header.izao-nav-root .menu-button.w--open .header-menu-button-icon-medium { opacity: 0 !important; transform: scaleX(.2) !important; }
  .header.izao-nav-root .menu-button.w--open .header-menu-button-icon-bottom { transform: translateY(-6px) rotate(-45deg) !important; }
  .header.izao-nav-root .nav-menu.w-nav-menu {
    padding-top: 18px;
    border-top: 1px solid var(--neutral-400);
    background: #fff;
  }
  .header.izao-nav-root .header-navigation {
    padding-top: 0;
    gap: 0;
  }
  .header.izao-nav-root .izao-mobile-nav-label {
    display: block;
    padding: 8px 0 15px;
    color: var(--izao-accent-text);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
  }
  .header.izao-nav-root .nav-item-wrapper,
  .header.izao-nav-root .nav-item-wrapper.first { min-height: 52px; }
  .header.izao-nav-root .header-nav {
    min-height: 52px;
    justify-content: space-between;
    color: var(--neutral-800);
    font-size: 17px;
    font-weight: 620;
    letter-spacing: -.02em;
  }
  .header.izao-nav-root .header-nav::after {
    top: 50%;
    right: 0;
    bottom: auto;
    left: auto;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    transform: translateY(-50%) scale(.5);
  }
  .header.izao-nav-root .header-nav.izao-nav-active::after { transform: translateY(-50%) scale(1); }
  .header.izao-nav-root .nav-item-wrapper.izao-nav-support {
    min-height: 48px;
    border-bottom: 0;
  }
  .header.izao-nav-root .nav-item-wrapper.izao-nav-support .header-nav {
    min-height: 48px;
    color: var(--neutral-600);
    font-size: 14px;
  }
  .header.izao-nav-root .nav-item-wrapper.izao-pro-workspace-item {
    min-height: 0;
    margin: 20px 0 12px;
    flex-shrink: 0;
    border: 1px solid #dce3dc;
    border-radius: 5px;
    background: #f3f6f0;
    box-shadow: none;
  }
  .header.izao-nav-root .nav-item-wrapper.izao-pro-workspace-item .izao-pro-workspace-link {
    display: grid;
    min-height: 68px;
    align-items: center;
    padding: 9px 12px;
    color: #12391d;
    grid-template-columns: 27px minmax(0, 1fr) 34px;
    column-gap: 10px;
  }
  .header.izao-nav-root .nav-item-wrapper.izao-pro-workspace-item .izao-pro-workspace-link::after { display: none; }
  .header.izao-nav-root .nav-item-wrapper.izao-pro-workspace-item .izao-pro-workspace-link:hover,
  .header.izao-nav-root .nav-item-wrapper.izao-pro-workspace-item .izao-pro-workspace-link:focus-visible {
    color: #12391d;
    background: #50ff30;
  }
  .izao-pro-workspace-signal {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    border-radius: 50%;
    background: rgb(18 57 29 / 10%);
  }
  .izao-pro-workspace-signal > span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #12391d;
    box-shadow: 0 0 0 0 rgb(18 57 29 / 30%);
    animation: izao-pro-workspace-dot 1.8s ease-out infinite;
  }
  .izao-pro-workspace-copy { display: grid; gap: 3px; }
  .izao-pro-workspace-copy small {
    color: #246130;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .11em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  .izao-pro-workspace-copy strong { color: #12391d; font-size: 16px; font-weight: 720; letter-spacing: -.025em; }
  .izao-pro-workspace-arrow {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 1px solid rgb(18 57 29 / 22%);
    border-radius: 50%;
    color: #12391d;
    background: rgb(255 255 255 / 28%);
  }
  .izao-pro-workspace-arrow svg { width: 16px; height: 16px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
  .header.izao-nav-root .nav-item-wrapper.button-mobile { margin-top: 14px; }
  .header.izao-nav-root .header-button-mobile {
    min-height: 50px;
    border-radius: 11px;
    font-size: 15px;
    box-shadow: 0 8px 20px rgb(17 17 17 / 10%);
  }
}

@keyframes izao-pro-workspace-breathe {
  0%, 100% { box-shadow: 0 10px 28px rgb(57 255 20 / 19%), 0 0 0 0 rgb(57 255 20 / 0%); }
  50% { box-shadow: 0 14px 34px rgb(57 255 20 / 28%), 0 0 0 5px rgb(57 255 20 / 9%); }
}

@keyframes izao-pro-workspace-dot {
  0% { box-shadow: 0 0 0 0 rgb(18 57 29 / 38%); }
  70%, 100% { box-shadow: 0 0 0 7px rgb(18 57 29 / 0%); }
}

@media screen and (max-width: 479px) {
  .header.izao-nav-root .header-logo { width: 128px; }
  .header.izao-nav-root .container-default { padding-right: 15px; padding-left: 15px; }
  .header.izao-nav-root .split-content.header-center,
  .header.izao-nav-root .split-content.header-left { gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .header.izao-nav-root .nav-item-wrapper.izao-pro-workspace-item,
  .izao-pro-workspace-signal > span { animation: none; }
}

/* ── 14. Accessible text available without changing donor geometry ─────── */
.izao-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
/* Property enquiries: compact contact entry, with a focused mobile dialog. */
.card-property-request-info-mobile-wrapper .card-property-request-info{padding:22px!important;border:1px solid #e2e7dd!important;border-radius:5px!important;background:#fff!important;box-shadow:none!important}.card-property-request-info-mobile-wrapper .card-property-request-info>h2,.card-property-request-info-mobile-wrapper .card-property-request-info>.horizontal-divider{display:none!important}.card-property-request-info-mobile-wrapper .card-property-request-info>.text-200{font-size:11px!important;margin-bottom:5px!important}.card-property-request-info-mobile-wrapper .card-property-request-info>.flex .h2-size{font-size:23px!important;line-height:1.4!important}.card-property-request-info .property-agent-contact{margin-top:20px!important;padding-top:20px!important}
