:root {
    --purple: #8646ad;
    --purple-dark: #67328a;
    --purple-soft: #f3ecf7;
    --text: #201d24;
    --muted: #756f7b;
    --line: #ebe7ee;
    --surface: #ffffff;
    --page: #f7f6f8;
    --shadow: 0 18px 50px rgba(28, 20, 34, .10);
    --radius: 18px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); background: var(--page); font-family: "Onest", "Noto Sans Georgian", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, select { font: inherit; }
.container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.test-ribbon { position: fixed; z-index: 100; left: 50%; top: 0; transform: translateX(-50%); background: #201d24; color: #fff; padding: 5px 14px 6px; border-radius: 0 0 10px 10px; font-size: 11px; font-weight: 700; letter-spacing: .08em; opacity: .92; }
.site-header { position: absolute; z-index: 50; top: 20px; left: 0; right: 0; color: #fff; }
.header-inner { min-height: 82px; display: flex; align-items: center; gap: 28px; }
.brand { margin-right: auto; display: inline-flex; align-items: center; }
.brand img { width: 151px; height: 69px; object-fit: contain; }
.main-nav { display: flex; align-items: center; gap: 26px; font-size: 14px; font-weight: 700; }
.main-nav > a:not(.add-btn) { opacity: .92; }
.main-nav > a:not(.add-btn):hover { opacity: 1; color: #f2dfff; }
.add-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 46px; padding: 0 18px; border-radius: 10px; background: var(--purple); box-shadow: 0 10px 30px rgba(134,70,173,.35); }
.add-btn:hover { background: #9550bc; }
.language-switch { display: flex; padding: 4px; border: 1px solid rgba(255,255,255,.25); background: rgba(14,12,17,.28); backdrop-filter: blur(10px); border-radius: 10px; }
.language-switch a { display: grid; place-items: center; min-width: 38px; height: 34px; border-radius: 7px; font-size: 12px; font-weight: 700; color: rgba(255,255,255,.68); }
.language-switch a.active { background: #fff; color: var(--purple-dark); }
.menu-toggle { display: none; border: 0; color: #fff; background: transparent; font-size: 28px; }
.hero { min-height: 630px; position: relative; display: flex; align-items: center; background: url('/assets/avo35_2_20260817/img/hero.jpg') center/cover no-repeat; color: #fff; overflow: hidden; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(19,16,22,.82), rgba(20,16,25,.57) 54%, rgba(18,15,20,.62)); }
.hero::after { content: ""; position: absolute; inset: auto -10% -210px -10%; height: 300px; background: var(--page); transform: rotate(-2.5deg); }
.hero-content { position: relative; z-index: 2; padding-top: 110px; padding-bottom: 78px; }
.hero-copy { max-width: 780px; }
.eyebrow { display: inline-flex; padding: 7px 11px; border-radius: 999px; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.2); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.eyebrow.purple { color: var(--purple-dark); background: var(--purple-soft); border-color: transparent; }
.hero h1 { margin: 17px 0 10px; max-width: 780px; font-size: clamp(40px, 5vw, 68px); line-height: 1.03; letter-spacing: -.035em; }
.hero-copy p { margin: 0; max-width: 720px; color: rgba(255,255,255,.82); font-size: 18px; line-height: 1.6; }
.search-card { margin-top: 34px; max-width: 1060px; padding: 15px; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.94); border-radius: 16px; box-shadow: var(--shadow); color: var(--text); backdrop-filter: blur(10px); }
.deal-tabs { display: flex; gap: 5px; margin-bottom: 10px; }
.deal-tab { border: 0; padding: 9px 16px; border-radius: 8px; background: transparent; color: var(--muted); font-weight: 700; cursor: pointer; }
.deal-tab.active { background: var(--purple-soft); color: var(--purple-dark); }
.search-grid { display: grid; grid-template-columns: 1.2fr 1.2fr 1fr .8fr; gap: 10px; align-items: end; }
.search-grid label { display: block; }
.search-grid label span { display: block; margin: 0 0 7px 3px; color: #77717d; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .055em; }
.search-grid select { width: 100%; height: 52px; border: 1px solid #e1dde4; border-radius: 10px; background: #fff; padding: 0 12px; color: #343038; outline: none; }
.search-submit, .primary-btn { height: 52px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--purple); color: #fff; font-weight: 700; }
.search-submit:hover, .primary-btn:hover { background: var(--purple-dark); }
.category-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.category-pills a { display: inline-flex; align-items: center; gap: 9px; padding: 10px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.22); background: rgba(22,18,25,.32); backdrop-filter: blur(10px); font-size: 13px; font-weight: 700; }
.category-pills a:hover { background: rgba(134,70,173,.6); }
.section { padding: 72px 0; }
.section-heading { display: flex; justify-content: space-between; gap: 30px; align-items: end; margin-bottom: 28px; }
.section-heading h2, .market-copy h2 { margin: 0; font-size: clamp(28px, 3vw, 40px); letter-spacing: -.025em; }
.section-heading p, .market-copy p { margin: 8px 0 0; color: var(--muted); line-height: 1.6; }
.text-link { color: var(--purple-dark); font-weight: 700; white-space: nowrap; }
.listing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.listing-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: .2s ease; }
.listing-card:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(38,29,44,.09); }
.listing-photo { position: relative; aspect-ratio: 16/10; overflow: hidden; background: #ddd; }
.listing-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.listing-card:hover .listing-photo img { transform: scale(1.035); }
.listing-tag { position: absolute; left: 14px; top: 14px; background: #fff; color: var(--purple-dark); border-radius: 999px; padding: 7px 10px; font-size: 11px; font-weight: 700; box-shadow: 0 4px 16px rgba(0,0,0,.12); }
.listing-tag.rent { color: #156c64; }
.heart { position: absolute; right: 14px; top: 14px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255,255,255,.93); color: #43294e; font-size: 23px; cursor: pointer; }
.listing-body { padding: 18px; }
.listing-price { font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.listing-price small { font-size: 12px; color: var(--muted); }
.listing-body h3 { margin: 8px 0 6px; font-size: 16px; }
.listing-body p { margin: 0 0 16px; color: var(--muted); font-size: 14px; }
.listing-location { color: #655d69; font-size: 13px; }
.market-section { padding-top: 30px; }
.market-panel { display: grid; grid-template-columns: 1.1fr 1fr; gap: 50px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 42px; box-shadow: 0 16px 50px rgba(38,29,44,.06); }
.market-copy h2 { margin-top: 12px; }
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.stats-grid > div { min-height: 130px; padding: 20px; background: var(--purple-soft); border-radius: 16px; display: flex; flex-direction: column; justify-content: center; }
.stats-grid strong { color: var(--purple-dark); font-size: 27px; }
.stats-grid span { margin-top: 7px; color: #6d6371; font-size: 12px; line-height: 1.35; }
.placeholder-page { min-height: 72vh; display: grid; place-items: center; padding: 130px 0 70px; background: linear-gradient(145deg, #f6f1f9, #fff); }
.placeholder-card { max-width: 720px; text-align: center; background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 56px; box-shadow: var(--shadow); }
.placeholder-icon { width: 70px; height: 70px; display: grid; place-items: center; margin: 0 auto 20px; border-radius: 20px; background: var(--purple-soft); color: var(--purple-dark); font-size: 35px; }
.placeholder-card h1 { margin: 0 0 16px; font-size: 42px; }
.placeholder-card h2 { margin: 0 0 12px; font-size: 20px; }
.placeholder-card p { color: var(--muted); line-height: 1.7; }
.placeholder-card .primary-btn { margin-top: 15px; padding: 0 22px; }
.site-footer { margin-top: 70px; background: #201d24; color: #fff; padding: 42px 0; }
.footer-grid { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 40px; }
.footer-logo { width: 105px; height: auto; }
.site-footer p { margin: 5px 0 0; color: #a9a3ae; font-size: 13px; }
.footer-links { display: flex; gap: 22px; font-size: 13px; color: #d4ced7; }
.footer-copy { color: #8f8993; font-size: 12px; }
@media (max-width: 980px) {
    .site-header { top: 18px; }
    .header-inner { min-height: 72px; }
    .brand img { width: 128px; height: auto; }
    .menu-toggle { display: block; }
    .main-nav { display: none; position: absolute; top: 74px; left: 20px; right: 20px; padding: 16px; flex-direction: column; align-items: stretch; gap: 5px; border-radius: 14px; background: rgba(25,21,28,.97); box-shadow: var(--shadow); }
    .main-nav.open { display: flex; }
    .main-nav a { padding: 11px 12px; }
    .add-btn { justify-content: center; }
    .language-switch { margin-left: 0; }
    .search-grid { grid-template-columns: 1fr 1fr; }
    .listing-grid { grid-template-columns: 1fr 1fr; }
    .listing-card:last-child { display: none; }
    .market-panel { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .container { width: min(100% - 24px, 1180px); }
    .test-ribbon { font-size: 9px; padding-inline: 9px; }
    .header-inner { gap: 12px; }
    .brand img { width: 112px; }
    .language-switch a { min-width: 30px; height: 30px; font-size: 10px; }
    .hero { min-height: 720px; }
    .hero-content { padding-top: 125px; padding-bottom: 100px; }
    .hero h1 { font-size: 42px; }
    .hero-copy p { font-size: 15px; }
    .search-card { padding: 12px; border-radius: 14px; }
    .search-grid { grid-template-columns: 1fr; }
    .search-grid label:nth-child(3) { display: none; }
    .category-pills { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; scrollbar-width: none; }
    .category-pills::-webkit-scrollbar { display: none; }
    .category-pills a { flex: 0 0 auto; }
    .section { padding: 54px 0; }
    .section-heading { align-items: start; flex-direction: column; gap: 14px; }
    .listing-grid { grid-template-columns: 1fr; }
    .listing-card:last-child { display: block; }
    .market-panel { padding: 25px; gap: 28px; }
    .stats-grid { grid-template-columns: 1fr; }
    .stats-grid > div { min-height: 95px; }
    .placeholder-card { padding: 36px 20px; }
    .placeholder-card h1 { font-size: 34px; }
    .footer-grid { grid-template-columns: 1fr; gap: 22px; }
    .footer-links { flex-wrap: wrap; }
}

/* ===== AVO.GE 2.0 · Stage 2 ===== */
[hidden] { display: none !important; }
input, textarea, button { font: inherit; }
input, textarea, select { color: var(--text); }

.site-header--inner {
    position: relative;
    top: 0;
    background: linear-gradient(110deg, #241e28 0%, #382f3e 55%, #211c25 100%);
    box-shadow: 0 1px 0 rgba(255,255,255,.06), 0 8px 24px rgba(20,16,23,.12);
}
.site-header--inner .header-inner { min-height: 104px; padding-top: 8px; }
.site-header--inner + main { min-height: 55vh; }
.favorites-nav { display: inline-flex; align-items: center; gap: 6px; }
.favorites-nav-heart { font-size: 18px; line-height: 1; }
.favorites-count {
    min-width: 19px; height: 19px; padding: 0 5px; display: inline-grid; place-items: center;
    border-radius: 999px; background: #fff; color: var(--purple-dark); font-size: 10px; font-weight: 700;
}

.inner-hero {
    padding: 64px 0 44px;
    background: radial-gradient(circle at 15% 0, rgba(134,70,173,.12), transparent 36%), linear-gradient(180deg,#fff,#f7f4f9);
    border-bottom: 1px solid var(--line);
}
.inner-hero--compact { padding-bottom: 34px; }
.inner-hero-content h1 { margin: 13px 0 8px; font-size: clamp(34px,4vw,52px); letter-spacing: -.035em; }
.inner-hero-content p { margin: 0; max-width: 760px; color: var(--muted); font-size: 16px; line-height: 1.65; }

.secondary-btn, .text-btn {
    border: 0; cursor: pointer; font-weight: 700; transition: .18s ease;
}
.secondary-btn {
    min-height: 44px; padding: 0 16px; border: 1px solid #ded7e3; border-radius: 10px; background: #fff; color: var(--purple-dark);
}
.secondary-btn:hover { border-color: #c7b6d0; background: var(--purple-soft); }
.text-btn { padding: 9px 3px; background: transparent; color: var(--purple-dark); }
.text-btn:hover { color: var(--purple); }

.heart.active { color: #8b3fb3; background: #fff; transform: scale(1.04); }

/* Favorites */
.favorites-toolbar {
    display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px;
}
.favorites-summary { font-size: 14px; color: var(--muted); }
.favorites-summary [data-favorites-page-count] { color: var(--text); font-size: 24px; font-weight: 700; margin-right: 4px; }
.favorites-grid { min-height: 200px; }
.empty-state {
    min-height: 360px; display: grid; justify-items: center; align-content: center; text-align: center;
    padding: 50px 24px; border: 1px dashed #d8cfdd; border-radius: 22px; background: #fff;
}
.empty-state-icon {
    width: 76px; height: 76px; display: grid; place-items: center; margin-bottom: 18px;
    border-radius: 50%; background: var(--purple-soft); color: var(--purple-dark); font-size: 42px;
}
.empty-state h2 { margin: 0; font-size: 28px; }
.empty-state p { max-width: 520px; margin: 10px 0 20px; color: var(--muted); line-height: 1.6; }
.empty-state .primary-btn { min-width: 180px; padding: 0 20px; }

/* Add listing */
.add-page { padding: 38px 0 10px; }
.add-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 28px; align-items: start; }
.add-sidebar { position: sticky; top: 20px; }
.sidebar-card {
    display: flex; flex-direction: column; gap: 5px; padding: 18px; margin-bottom: 12px;
    border-radius: 16px; background: linear-gradient(135deg, var(--purple-dark), var(--purple)); color: #fff;
    box-shadow: 0 14px 34px rgba(103,50,138,.18);
}
.sidebar-card strong { font-size: 15px; }
.sidebar-card span { color: rgba(255,255,255,.78); font-size: 12px; line-height: 1.45; }
.add-progress {
    display: flex; flex-direction: column; padding: 9px; border: 1px solid var(--line); border-radius: 16px; background: #fff;
}
.add-progress a { padding: 10px 11px; border-radius: 9px; color: #6f6874; font-size: 12px; font-weight: 700; }
.add-progress a:hover { color: var(--purple-dark); background: var(--purple-soft); }
.listing-form { min-width: 0; }
.form-card {
    padding: 28px; margin-bottom: 18px; border: 1px solid var(--line); border-radius: 20px; background: #fff;
    box-shadow: 0 10px 32px rgba(34,27,39,.045); scroll-margin-top: 25px;
}
.form-card-heading { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 24px; }
.form-card-heading h2 { margin: 0 0 5px; font-size: 22px; letter-spacing: -.02em; }
.form-card-heading p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.step-number {
    flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px;
    background: var(--purple-soft); color: var(--purple-dark); font-size: 13px; font-weight: 700;
}
.form-grid { display: grid; gap: 18px; }
.form-grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.field-block { display: block; min-width: 0; }
.field-block > span, .amenities-field legend {
    display: block; margin-bottom: 8px; color: #3f3944; font-size: 12px; font-weight: 700;
}
.field-block input:not([type="file"]), .field-block select, .field-block textarea,
.description-panels textarea {
    width: 100%; border: 1px solid #ddd7e1; border-radius: 10px; background: #fff; outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.field-block input:not([type="file"]), .field-block select { height: 48px; padding: 0 13px; }
.field-block input:focus, .field-block select:focus, .description-panels textarea:focus {
    border-color: #a978c4; box-shadow: 0 0 0 3px rgba(134,70,173,.10);
}
.field-block input:disabled { color: #9d96a0; background: #f4f2f5; }
.field-block-wide { grid-column: 1 / -1; }
.field-block input[type="file"] {
    width: 100%; padding: 11px; border: 1px dashed #d7cfdb; border-radius: 10px; background: #faf9fb;
}
.field-block small, .field-hint { display: block; margin: 7px 0 0; color: #8c8490; font-size: 11px; line-height: 1.5; }
.geo-child { animation: avoReveal .18s ease; }
@keyframes avoReveal { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

.dynamic-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.dynamic-empty {
    grid-column: 1 / -1; min-height: 92px; display: grid; place-items: center; padding: 20px;
    border: 1px dashed #dad2df; border-radius: 13px; color: #928a96; background: #fbfafc; font-size: 13px;
}
.dynamic-fields > .field-pair { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.dynamic-fields > .address-field-set, .dynamic-fields > .amenities-field { grid-column: 1 / -1; }
.money-input { position: relative; }
.money-input > span { position: absolute; z-index: 2; left: 14px; top: 50%; transform: translateY(-50%); color: #746b79; font-weight: 700; }
.money-input input { padding-left: 32px !important; }
.address-field-set { padding-top: 4px; }
.geo-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.geolocate-btn { display: inline-flex; align-items: center; gap: 8px; }
.geo-status { font-size: 12px; font-weight: 700; }
.geo-status.success { color: #18705f; }
.geo-status.error { color: #aa3b45; }

.amenities-field { margin: 4px 0 0; padding: 20px; border: 1px solid #e3dee6; border-radius: 13px; }
.amenities-field legend { padding: 0 7px; margin-left: -7px; }
.amenities-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px 18px; }
.amenities-grid label { display: flex; align-items: center; gap: 9px; min-width: 0; color: #6e6772; font-size: 12px; cursor: pointer; }
.amenities-grid input { accent-color: var(--purple); }

.language-tabs { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 10px; }
.language-tabs button {
    min-height: 44px; border: 1px solid #ded8e2; border-radius: 9px; background: #fbfafb; color: #6b6470; font-weight: 700; cursor: pointer;
}
.language-tabs button.active { border-color: var(--purple); background: var(--purple); color: #fff; }
.description-panels textarea { display: block; min-height: 210px; padding: 14px; resize: vertical; line-height: 1.6; }

.contact-demo-card { background: linear-gradient(180deg,#fff,#fbfafc); }
.promotion-list { overflow: hidden; border: 1px solid #e1dbe5; border-radius: 14px; }
.promotion-option {
    display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 12px; min-height: 66px; padding: 10px 16px;
    border-bottom: 1px solid #ece8ee; cursor: pointer;
}
.promotion-option:last-child { border-bottom: 0; }
.promotion-option:hover { background: #fcf9fe; }
.promotion-option input { accent-color: var(--purple); }
.promotion-option strong { font-size: 14px; }
.promotion-option em { color: var(--muted); font-size: 11px; font-style: normal; white-space: nowrap; }
.promotion-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: #fff; font-size: 19px; font-weight: 700; }
.promotion-icon.premium { background: linear-gradient(135deg,#ff785d,#ff9d5f); }
.promotion-icon.vip { background: linear-gradient(135deg,#ef50dd,#b847da); }
.promotion-icon.highlight { background: linear-gradient(135deg,#f9aa16,#f37900); }

.form-submit-row {
    display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 8px 4px 0;
}
.terms-check { display: flex; align-items: flex-start; gap: 8px; color: #6f6873; font-size: 12px; line-height: 1.45; }
.terms-check input { margin-top: 2px; accent-color: var(--purple); }
.submit-actions { display: flex; align-items: center; gap: 16px; }
.draft-note { color: #77707b; font-size: 11px; }
.form-submit { min-width: 220px; padding: 0 22px; border: 0; cursor: pointer; }
.form-message { margin-top: 16px; padding: 14px 16px; border-radius: 12px; font-size: 13px; line-height: 1.55; }
.form-message.success { border: 1px solid #b9e1d7; background: #edf8f5; color: #176754; }

.avo-toast {
    position: fixed; z-index: 999; left: 50%; bottom: 24px; transform: translate(-50%,20px); opacity: 0;
    padding: 11px 16px; border-radius: 999px; background: #211d24; color: #fff; font-size: 12px; font-weight: 700;
    box-shadow: 0 12px 32px rgba(0,0,0,.2); pointer-events: none; transition: .18s ease;
}
.avo-toast.show { opacity: 1; transform: translate(-50%,0); }

@media (max-width: 980px) {
    .site-header--inner .main-nav { top: 88px; }
    .add-layout { grid-template-columns: 1fr; }
    .add-sidebar { position: static; }
    .add-progress { flex-direction: row; overflow-x: auto; scrollbar-width: none; }
    .add-progress::-webkit-scrollbar { display: none; }
    .add-progress a { flex: 0 0 auto; }
    .amenities-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
    .site-header--inner .header-inner { min-height: 90px; }
    .site-header--inner .main-nav { top: 78px; }
    .inner-hero { padding: 40px 0 28px; }
    .inner-hero-content h1 { font-size: 34px; }
    .favorites-toolbar { align-items: stretch; flex-direction: column; }
    .favorites-toolbar .secondary-btn { align-self: flex-start; }
    .add-page { padding-top: 22px; }
    .form-card { padding: 20px 16px; border-radius: 16px; }
    .form-card-heading { margin-bottom: 19px; }
    .form-grid-2, .dynamic-fields, .dynamic-fields > .field-pair { grid-template-columns: 1fr; }
    .amenities-grid { grid-template-columns: 1fr; }
    .language-tabs { grid-template-columns: 1fr; }
    .promotion-option { grid-template-columns: auto auto 1fr; }
    .promotion-option em { grid-column: 3; white-space: normal; }
    .form-submit-row { align-items: stretch; flex-direction: column; }
    .submit-actions { align-items: stretch; flex-direction: column; gap: 9px; }
    .form-submit { width: 100%; }
}

/* Stage 3: catalog + property page */
.listing-card-link { display: block; }
.listing-card .listing-body.listing-card-link { color: inherit; }
.listing-card .listing-body h3 { min-height: 40px; line-height: 1.3; }
.favorite-card-wrap > .listing-card { height: 100%; }
.favorite-action.active { color: var(--purple-dark); border-color: #cdb4dc; background: var(--purple-soft); }

.catalog-hero { padding-bottom: 38px; }
.catalog-page { padding-top: 34px; }
.catalog-shell { display: grid; grid-template-columns: 255px minmax(0,1fr); gap: 24px; align-items: start; }
.catalog-filters { position: sticky; top: 18px; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 10px 32px rgba(34,27,39,.04); }
.filter-title-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.filter-title-row h2 { margin: 0; font-size: 20px; }
.filter-field { display: block; margin-bottom: 15px; }
.filter-field > span { display: block; margin-bottom: 7px; color: #625b67; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.filter-field select { width: 100%; height: 46px; padding: 0 11px; border: 1px solid #ded8e2; border-radius: 9px; background: #fff; color: #3c3640; outline: none; }
.filter-field select:focus { border-color: #a978c4; box-shadow: 0 0 0 3px rgba(134,70,173,.09); }
.catalog-show-btn { width: 100%; border: 0; cursor: pointer; }
.catalog-results { min-width: 0; }
.catalog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 52px; margin-bottom: 14px; }
.catalog-toolbar > div:first-child { display: flex; align-items: baseline; gap: 7px; color: var(--muted); font-size: 13px; }
.catalog-toolbar > div:first-child strong { color: var(--text); font-size: 25px; }
.catalog-toolbar-actions { display: flex; align-items: center; gap: 14px; }
.view-switch { display: flex; padding: 3px; border: 1px solid #ddd7e1; border-radius: 9px; background: #fff; }
.view-switch button { min-height: 36px; padding: 0 12px; border: 0; border-radius: 7px; background: transparent; color: #716a76; font-size: 12px; font-weight: 700; cursor: pointer; }
.view-switch button.active { background: var(--purple-soft); color: var(--purple-dark); }
.sort-select { display: flex; align-items: center; gap: 8px; color: #77707b; font-size: 11px; font-weight: 700; }
.sort-select select { height: 40px; border: 1px solid #ddd7e1; border-radius: 9px; background: #fff; padding: 0 10px; color: #433d47; }
.catalog-demo-note { margin: 0 0 18px; padding: 11px 14px; border: 1px solid #e3d8ea; border-radius: 11px; background: #faf6fc; color: #786a80; font-size: 11px; line-height: 1.5; }
.catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.catalog-empty { min-height: 340px; display: grid; justify-items: center; align-content: center; border: 1px dashed #d9d0de; border-radius: 18px; background: #fff; color: var(--muted); }
.catalog-empty > div { font-size: 42px; color: #b79fc5; }
.catalog-empty strong { margin-top: 8px; color: var(--text); font-size: 32px; }
.catalog-map-panel { min-height: 620px; }
.catalog-map-placeholder { min-height: 620px; display: grid; place-items: center; align-content: center; text-align: center; border: 1px solid #e0d9e4; border-radius: 20px; background: radial-gradient(circle at 30% 30%, #f2eaf7 0 8%, transparent 9%), linear-gradient(120deg,#f8f6fa,#ece8ef); overflow: hidden; }
.catalog-map-placeholder > span { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 50%; background: var(--purple); color: #fff; font-size: 34px; box-shadow: 0 15px 34px rgba(134,70,173,.25); }
.catalog-map-placeholder h3 { margin: 18px 0 5px; }
.catalog-map-placeholder p { max-width: 480px; margin: 0; padding: 0 20px; color: var(--muted); line-height: 1.6; }

.property-page { padding: 41px 0 10px; }
.property-container { max-width: 1180px; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-bottom: 24px; color: #766e7a; font-size: 12px; }
.breadcrumbs a { color: var(--purple-dark); font-weight: 700; }
.breadcrumbs span { color: #aaa1ad; }

/* Stage 29.3: clear validation feedback for the listing form. */
.listing-form .field-invalid > span:first-child,
.listing-form .terms-check.field-invalid span {
    color: #a53d48;
}
.listing-form .field-invalid > input:not([type="hidden"]),
.listing-form .field-invalid > textarea,
.listing-form .field-invalid .money-input,
.listing-form .field-invalid .avo-select-trigger,
.listing-form .field-invalid .avo-search-select-input {
    border-color: #c95661 !important;
    box-shadow: 0 0 0 4px rgba(180,60,72,.10) !important;
    background: #fffafb !important;
}
.listing-form .field-invalid.terms-check {
    padding: 9px 11px;
    border: 1px solid rgba(185,69,80,.28);
    border-radius: 10px;
    background: rgba(185,69,80,.055);
}
.listing-form .field-error-message {
    display: block;
    width: 100%;
    margin-top: 6px;
    color: #a53d48;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
}
.account-content > .breadcrumbs { margin-bottom: 16px; }
.add-page .account-form-breadcrumbs { margin-bottom: 18px; }
.add-layout > .account-form-breadcrumbs { grid-column: 1 / -1; }
.company-profile-breadcrumbs { padding-top: 24px; margin-bottom: 14px; }
.property-heading-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; margin-bottom: 22px; }
.property-heading-row h1 { max-width: 830px; margin: 0; font-size: clamp(28px,3.2vw,43px); line-height: 1.12; letter-spacing: -.027em; }
.property-heading-meta { margin-top: 10px; color: #766f7b; font-size: 13px; }
.property-heading-actions { display: flex; gap: 8px; flex: 0 0 auto; }
.icon-action { min-height: 42px; display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; border: 1px solid #ddd6e1; border-radius: 10px; background: #fff; color: #504956; font-weight: 700; cursor: pointer; }
.icon-action:hover { border-color: #cbb9d5; background: #fbf7fd; }
.favorite-symbol { font-size: 20px; }
.property-top-grid { display: grid; grid-template-columns: minmax(0,1.8fr) 330px; gap: 24px; align-items: start; }
.property-gallery { min-width: 0; }
.gallery-main { position: relative; aspect-ratio: 16/10; overflow: hidden; border-radius: 18px; background: #ddd; }
.gallery-main > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-thumbs { display: grid; grid-template-columns: repeat(6,1fr); gap: 8px; margin-top: 8px; }
.gallery-thumbs button { aspect-ratio: 16/10; overflow: hidden; padding: 0; border: 2px solid transparent; border-radius: 8px; background: #ddd; cursor: pointer; }
.gallery-thumbs button.active { border-color: var(--purple); }
.gallery-thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.property-contact-card { padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 14px 40px rgba(34,27,39,.07); }
.property-price { margin-bottom: 18px; font-size: 31px; font-weight: 700; letter-spacing: -.03em; }
.property-price small { margin-left: 5px; color: var(--muted); font-size: 12px; }
.contact-line { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid #eeeaf0; font-size: 12px; }
.contact-line span { color: #8b838f; }
.contact-line strong { max-width: 180px; text-align: right; font-weight: 700; }
.contact-phone { margin-top: 18px; color: var(--purple-dark); font-size: 20px; font-weight: 700; }
.staging-contact-note { display: block; margin-top: 5px; color: #99919d; font-size: 10px; }
.contact-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.contact-actions .primary-btn { grid-column: 1/-1; border: 0; }
.contact-actions button:disabled { cursor: default; opacity: .72; }
.property-content-grid { display: grid; grid-template-columns: minmax(0,1fr) 260px; gap: 34px; margin-top: 36px; align-items: start; }
.property-main-column { min-width: 0; }
.property-section { margin-bottom: 18px; padding: 27px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.property-section h2 { margin: 0 0 20px; font-size: 23px; letter-spacing: -.018em; }
.feature-cards { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 24px; }
.feature-cards > div { min-height: 106px; display: grid; align-content: center; padding: 14px; border-radius: 13px; background: #faf7fc; }
.feature-cards > div > span { color: var(--purple); font-size: 19px; }
.feature-cards strong { margin-top: 5px; font-size: 18px; }
.feature-cards small { margin-top: 4px; color: #817985; font-size: 10px; }
.property-table { margin: 0; }
.property-table > div { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 10px 0; border-bottom: 1px dotted #d7d0da; }
.property-table > div:last-child { border-bottom: 0; }
.property-table dt { color: #6e6672; font-size: 12px; }
.property-table dd { margin: 0; text-align: right; font-size: 12px; font-weight: 700; }
.property-amenities { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px 18px; }
.property-amenities > div { display: flex; align-items: center; gap: 9px; min-height: 38px; color: #5f5864; font-size: 12px; }
.property-amenities > div span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 8px; background: #eef8f4; color: #26745f; font-weight: 700; }
.property-description { color: #4d4652; line-height: 1.8; font-size: 14px; }
.property-description.lang-ka { font-family: "Noto Sans Georgian", "Onest", Arial, sans-serif; }
.description-warning { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; padding: 12px 14px; border-radius: 11px; background: #fff8ef; color: #885f27; font-size: 12px; }
.description-warning > span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: #f1a14c; color: #fff; font-weight: 700; }
.original-description-label { margin: 0 0 10px; color: #827a86; font-size: 11px; font-weight: 700; }
.map-heading-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.map-heading-row h2 { margin-bottom: 4px; }
.map-heading-row p { margin: 0; color: #817a85; font-size: 11px; }
.map-heading-row .secondary-btn { flex: 0 0 auto; }
.property-map, .map-placeholder { width: 100%; height: 390px; border: 0; border-radius: 14px; overflow: hidden; }
.property-map { position: relative; background: #eef1f3; }
.property-map .maplibregl-ctrl-group { border: 1px solid rgba(90,65,102,.12); border-radius: 12px; overflow: hidden; box-shadow: 0 8px 22px rgba(45,35,49,.10); }
.property-map .maplibregl-ctrl-attrib { font-size: 9px; }
.map-precision-note { color: #9a769f; font-weight: 700; }
.avo-property-marker {
    width: 34px;
    height: 34px;
    border: 4px solid #fff;
    border-radius: 50% 50% 50% 8px;
    transform: rotate(-45deg);
    background: linear-gradient(135deg,#9d63a5,#604368);
    box-shadow: 0 9px 22px rgba(73,47,79,.30);
}
.avo-property-marker::after {
    content: '';
    position: absolute;
    width: 9px;
    height: 9px;
    left: 50%;
    top: 50%;
    margin: -4.5px 0 0 -4.5px;
    border-radius: 50%;
    background: #fff;
}
.avo-property-marker.is-approx { opacity: .86; box-shadow: 0 0 0 8px rgba(133,93,142,.14), 0 9px 22px rgba(73,47,79,.25); }
.property-map--unavailable { display: grid; place-items: center; background: linear-gradient(135deg,#f5f1f6,#eef3f5); }
.property-map-unavailable { padding: 12px 16px; border-radius: 11px; background: rgba(255,255,255,.92); color: var(--purple-dark); font-size: 12px; font-weight: 700; box-shadow: 0 10px 30px rgba(45,35,49,.08); }
.map-placeholder { position: relative; display: grid; place-items: center; background: #ece9ee; }
.map-placeholder-grid { position: absolute; inset: 0; opacity: .55; background-image: linear-gradient(#fff 1px, transparent 1px), linear-gradient(90deg,#fff 1px,transparent 1px), linear-gradient(30deg,transparent 47%,#d2ccd6 48% 52%,transparent 53%); background-size: 42px 42px,42px 42px,180px 180px; }
.map-placeholder-pin { position: relative; z-index: 2; width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50% 50% 50% 8px; transform: rotate(-45deg); background: #d94a40; color: #fff; font-size: 28px; box-shadow: 0 12px 28px rgba(0,0,0,.2); }
.map-placeholder-pin::first-letter { transform: rotate(45deg); }
.map-placeholder-card { position: absolute; z-index: 3; left: 16px; top: 16px; max-width: 340px; display: flex; flex-direction: column; gap: 5px; padding: 12px 14px; border-radius: 10px; background: rgba(255,255,255,.95); box-shadow: 0 8px 22px rgba(0,0,0,.08); }
.map-placeholder-card strong { font-size: 12px; }
.map-placeholder-card span { color: #746d78; font-size: 10px; line-height: 1.45; }
.property-side-column { min-width: 0; }
.sticky-side-box { position: sticky; top: 18px; display: flex; flex-direction: column; gap: 8px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.sticky-side-box strong { color: var(--purple-dark); font-size: 17px; }
.sticky-side-box span { color: var(--muted); font-size: 11px; }
.sticky-side-box .secondary-btn { margin-top: 5px; }
.related-section { margin-top: 34px; }
.related-section .section-heading { margin-bottom: 20px; }
.related-section .section-heading h2 { font-size: 28px; }

@media (max-width: 980px) {
    .catalog-shell { grid-template-columns: 1fr; }
    .catalog-filters { position: static; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
    .filter-title-row { grid-column: 1/-1; margin-bottom: 0; }
    .filter-field { margin-bottom: 0; }
    .catalog-show-btn { align-self: end; }
    .property-top-grid { grid-template-columns: 1fr; }
    .property-contact-card { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 24px; }
    .property-price, .contact-phone, .staging-contact-note, .contact-actions { grid-column: 1/-1; }
    .property-content-grid { grid-template-columns: 1fr; }
    .property-side-column { display: none; }
}

@media (max-width: 640px) {
    .catalog-page { padding-top: 22px; }
    .catalog-filters { grid-template-columns: 1fr; padding: 16px; }
    .catalog-toolbar { align-items: stretch; flex-direction: column; }
    .catalog-toolbar-actions { align-items: stretch; justify-content: space-between; }
    .sort-select { flex: 1; justify-content: flex-end; }
    .sort-select > span { display: none; }
    .sort-select select { width: 100%; }
    .catalog-grid { grid-template-columns: 1fr; }
    .catalog-grid .listing-card { display: block !important; }
    .property-page { padding-top: 120px; }
    .property-heading-row { flex-direction: column; }
    .property-heading-actions { width: 100%; }
    .property-heading-actions .icon-action { flex: 1; justify-content: center; }
    .gallery-thumbs { grid-template-columns: repeat(3,1fr); }
    .property-contact-card { display: block; padding: 18px; }
    .feature-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .property-amenities { grid-template-columns: 1fr 1fr; }
    .property-section { padding: 20px 16px; }
    .map-heading-row { align-items: stretch; flex-direction: column; }
    .map-heading-row .secondary-btn { align-self: flex-start; }
    .property-map, .map-placeholder { height: 310px; }
    .related-section .listing-grid { grid-template-columns: 1fr; }
}

/* ===== AVO.GE 2.0 · Visual refresh 3.1 =====
   Softer brand palette, modern gradients and local SVG icon system.
   No external icon/font libraries. */
:root {
    --purple: #7b5a88;
    --purple-dark: #5a4166;
    --purple-mid: #92749e;
    --purple-soft: #f2edf5;
    --rose: #b9849f;
    --blue: #7693ad;
    --blue-soft: #edf3f8;
    --text: #242028;
    --muted: #77717b;
    --line: #e8e3ea;
    --surface: #ffffff;
    --page: #f6f5f7;
    --accent-gradient: linear-gradient(135deg, #745582 0%, #8f6d9d 52%, #718fa9 100%);
    --accent-gradient-hover: linear-gradient(135deg, #694b78 0%, #856394 52%, #67859f 100%);
    --soft-gradient: linear-gradient(135deg, rgba(185,132,159,.12) 0%, rgba(145,115,159,.08) 46%, rgba(118,147,173,.13) 100%);
    --card-gradient: linear-gradient(180deg, #ffffff 0%, #fdfcfd 100%);
    --shadow: 0 20px 52px rgba(48, 38, 53, .10);
    --shadow-soft: 0 12px 34px rgba(48, 38, 53, .065);
    --radius: 18px;
}

body {
    background:
        radial-gradient(circle at 8% 12%, rgba(185,132,159,.06), transparent 25%),
        radial-gradient(circle at 92% 8%, rgba(118,147,173,.065), transparent 27%),
        var(--page);
}

.avo-svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ui-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    display: inline-block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    vertical-align: -3px;
}

.test-ribbon {
    background: linear-gradient(90deg, rgba(35,31,39,.96), rgba(75,60,81,.96), rgba(43,53,65,.96));
    box-shadow: 0 5px 18px rgba(22,18,25,.15);
}

/* Header */
.site-header--inner {
    background:
        radial-gradient(circle at 20% 0, rgba(185,132,159,.19), transparent 34%),
        linear-gradient(112deg, #2a242d 0%, #44374a 49%, #2c3d4d 100%);
}
.main-nav > a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.main-nav > a .ui-icon { width: 16px; height: 16px; flex-basis: 16px; opacity: .78; }
.main-nav > a:not(.add-btn) {
    padding: 8px 0;
    transition: color .18s ease, opacity .18s ease, transform .18s ease;
}
.main-nav > a:not(.add-btn):hover { color: #f0e4f3; transform: translateY(-1px); }
.add-btn {
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 12px;
    background: var(--accent-gradient);
    box-shadow: 0 12px 28px rgba(91,65,102,.25);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.add-btn .ui-icon { opacity: 1; }
.add-btn:hover {
    background: var(--accent-gradient-hover);
    transform: translateY(-1px);
    box-shadow: 0 15px 32px rgba(79,60,90,.28);
}
.language-switch {
    border-color: rgba(255,255,255,.20);
    background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(25,28,34,.20));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.language-switch a.active {
    color: var(--purple-dark);
    background: linear-gradient(145deg,#fff,#f2edf5);
    box-shadow: 0 4px 12px rgba(0,0,0,.10);
}
.favorites-count { background: linear-gradient(145deg,#fff,#f0eaf4); }

/* Home hero */
.hero-overlay {
    background:
        radial-gradient(circle at 78% 28%, rgba(106,132,157,.16), transparent 30%),
        linear-gradient(102deg, rgba(25,21,28,.84) 0%, rgba(42,32,45,.63) 48%, rgba(30,43,55,.64) 100%);
}
.eyebrow {
    background: linear-gradient(135deg, rgba(255,255,255,.17), rgba(208,194,217,.08));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
.eyebrow.purple {
    color: var(--purple-dark);
    background: linear-gradient(135deg, #f2e8ef, #edf2f7);
}
.search-card {
    border-color: rgba(255,255,255,.48);
    background: linear-gradient(135deg, rgba(255,255,255,.975) 0%, rgba(249,245,249,.965) 52%, rgba(244,248,251,.97) 100%);
    box-shadow: 0 24px 60px rgba(22,18,25,.18), inset 0 1px 0 rgba(255,255,255,.9);
}
.deal-tabs {
    display: inline-flex;
    padding: 3px;
    border-radius: 11px;
    background: linear-gradient(135deg,#f2edf4,#edf2f6);
}
.deal-tab { border-radius: 8px; }
.deal-tab.active {
    color: #fff;
    background: var(--accent-gradient);
    box-shadow: 0 6px 16px rgba(103,78,114,.18);
}
.search-grid select,
.filter-field select,
.sort-select select,
.field-block input:not([type="file"]),
.field-block select,
.field-block textarea,
.description-panels textarea {
    border-color: #dfd9e2;
    background: linear-gradient(180deg,#fff,#fcfbfd);
}
.search-grid select:focus,
.filter-field select:focus,
.sort-select select:focus,
.field-block input:focus,
.field-block select:focus,
.description-panels textarea:focus {
    border-color: #9a7ca4;
    box-shadow: 0 0 0 3px rgba(123,90,136,.095);
}
.search-submit,
.primary-btn {
    gap: 8px;
    border: 1px solid rgba(255,255,255,.16);
    background: var(--accent-gradient);
    box-shadow: 0 9px 22px rgba(91,65,102,.19);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.search-submit .ui-icon,
.primary-btn .ui-icon { width: 17px; height: 17px; }
.search-submit:hover,
.primary-btn:hover {
    background: var(--accent-gradient-hover);
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(91,65,102,.23);
}
.category-pills a {
    border-color: rgba(255,255,255,.23);
    background: linear-gradient(135deg, rgba(28,23,31,.40), rgba(54,60,71,.28));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 8px 20px rgba(0,0,0,.08);
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.category-pills a .ui-icon { width: 17px; height: 17px; opacity: .9; }
.category-pills a:hover {
    border-color: rgba(226,203,231,.38);
    background: linear-gradient(135deg, rgba(100,75,111,.67), rgba(79,102,125,.59));
    transform: translateY(-1px);
}

/* Buttons and links */
.secondary-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border-color: #ddd5e1;
    background: linear-gradient(145deg,#fff,#f7f4f8);
    color: var(--purple-dark);
    box-shadow: 0 5px 14px rgba(56,44,61,.04);
}
.secondary-btn:hover {
    border-color: #c6b5cd;
    background: linear-gradient(145deg,#fbf7fc,#eef3f7);
}
.text-btn { color: var(--purple-dark); }
.text-btn:hover { color: #765580; }
.text-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--purple-dark);
}
.text-link .link-arrow { transition: transform .18s ease; }
.text-link:hover .link-arrow { transform: translateX(3px); }

/* Cards */
.listing-card {
    position: relative;
    border-color: #e5e0e7;
    background: var(--card-gradient);
    box-shadow: 0 7px 24px rgba(42,34,46,.035);
}
.listing-card::after {
    content: "";
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 0;
    height: 2px;
    border-radius: 2px 2px 0 0;
    opacity: 0;
    background: var(--accent-gradient);
    transition: opacity .2s ease;
}
.listing-card:hover { box-shadow: 0 18px 42px rgba(42,34,46,.09); }
.listing-card:hover::after { opacity: .72; }
.listing-tag {
    color: var(--purple-dark);
    background: linear-gradient(145deg,rgba(255,255,255,.97),rgba(246,240,248,.97));
    box-shadow: 0 5px 18px rgba(31,23,35,.11);
}
.listing-tag.rent { color: #416b68; background: linear-gradient(145deg,#fff,#edf6f4); }
.heart {
    color: #684f70;
    background: linear-gradient(145deg,rgba(255,255,255,.97),rgba(244,239,246,.95));
    box-shadow: 0 5px 17px rgba(32,24,36,.10);
    transition: transform .16s ease, color .16s ease;
}
.heart:hover { transform: scale(1.06); color: #845b91; }
.heart.active { color: #81538e; background: linear-gradient(145deg,#fff,#efe5f2); }
.listing-location {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.listing-location .ui-icon { width: 15px; height: 15px; color: #90749a; }

.market-panel {
    border-color: #e4dee7;
    background:
        radial-gradient(circle at 90% 12%, rgba(117,147,174,.12), transparent 26%),
        linear-gradient(135deg,#fff 0%,#faf6fa 53%,#f3f7fa 100%);
    box-shadow: var(--shadow-soft);
}
.stats-grid > div {
    background: linear-gradient(145deg,#f3ebf3,#edf3f7);
    border: 1px solid rgba(143,112,154,.09);
}
.stats-grid strong { color: var(--purple-dark); }

/* Inner headings */
.inner-hero {
    background:
        radial-gradient(circle at 14% 0, rgba(185,132,159,.16), transparent 34%),
        radial-gradient(circle at 88% 5%, rgba(118,147,173,.13), transparent 31%),
        linear-gradient(180deg,#fff,#f6f3f7);
}

/* Catalog */
.catalog-filters {
    border-color: #e4dfe6;
    background:
        radial-gradient(circle at 100% 0, rgba(118,147,173,.07), transparent 28%),
        linear-gradient(180deg,#fff,#fbf9fc);
    box-shadow: var(--shadow-soft);
}
.filter-title-row h2 {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.filter-title-row h2 .ui-icon { width: 18px; height: 18px; color: #8b6c96; }
.catalog-show-btn { gap: 8px; }
.view-switch {
    background: linear-gradient(145deg,#fff,#f8f5f9);
    border-color: #dcd5df;
}
.view-switch button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.view-switch button .ui-icon { width: 15px; height: 15px; }
.view-switch button.active {
    color: #fff;
    background: var(--accent-gradient);
    box-shadow: 0 5px 14px rgba(90,65,101,.16);
}
.catalog-demo-note {
    border-color: #dfd6e4;
    background: linear-gradient(135deg,#faf5fa,#f3f7fa);
}
.catalog-map-placeholder {
    border-color: #ded7e2;
    background:
        radial-gradient(circle at 23% 24%, rgba(185,132,159,.16) 0 7%, transparent 8%),
        radial-gradient(circle at 76% 67%, rgba(118,147,173,.13) 0 6%, transparent 7%),
        linear-gradient(135deg,#f8f5f8,#edf3f7);
}
.catalog-map-icon {
    width: 72px;
    height: 72px;
    display: grid;
    place-items: center;
    border-radius: 22px;
    color: #fff;
    background: var(--accent-gradient);
    box-shadow: 0 15px 34px rgba(91,65,102,.20);
    transform: rotate(-2deg);
}
.catalog-map-icon .ui-icon { width: 33px; height: 33px; }

/* Add listing */
.sidebar-card {
    background:
        radial-gradient(circle at 100% 0, rgba(151,181,207,.20), transparent 35%),
        var(--accent-gradient);
    box-shadow: 0 14px 34px rgba(79,60,88,.16);
}
.add-progress,
.form-card {
    border-color: #e4dfe6;
    background: linear-gradient(180deg,#fff,#fdfcfd);
}
.form-card { box-shadow: var(--shadow-soft); }
.step-number {
    color: #fff;
    background: var(--accent-gradient);
    box-shadow: 0 6px 16px rgba(91,65,102,.13);
}
.add-progress a:hover {
    color: var(--purple-dark);
    background: linear-gradient(135deg,#f3ecf4,#edf3f7);
}
.amenities-field {
    border-color: #e1dae4;
    background: linear-gradient(145deg,#fff,#fbfafc);
}
.language-tabs button {
    background: linear-gradient(145deg,#fff,#f8f5f9);
}
.language-tabs button.active {
    border-color: transparent;
    background: var(--accent-gradient);
    box-shadow: 0 7px 18px rgba(91,65,102,.15);
}
.promotion-list { border-color: #ded7e2; }
.promotion-option { background: linear-gradient(180deg,#fff,#fdfcfd); }
.promotion-option:hover { background: linear-gradient(135deg,#fbf6fb,#f3f7fa); }
.promotion-icon.premium { background: linear-gradient(135deg,#b77678,#bd8a70); }
.promotion-icon.vip { background: linear-gradient(135deg,#8f668f,#736b9c); }
.promotion-icon.highlight { background: linear-gradient(135deg,#ad8759,#9c755c); }

/* Property */
.property-heading-meta {
    display: flex;
    align-items: center;
    gap: 6px;
}
.property-heading-meta .ui-icon { width: 15px; height: 15px; color: #8a6f94; }
.icon-action {
    background: linear-gradient(145deg,#fff,#f7f4f8);
    box-shadow: 0 5px 14px rgba(56,44,61,.035);
}
.icon-action .ui-icon { width: 16px; height: 16px; }
.property-contact-card {
    border-color: #e3dde6;
    background:
        radial-gradient(circle at 100% 0, rgba(118,147,173,.08), transparent 25%),
        linear-gradient(180deg,#fff,#fbf9fc);
    box-shadow: var(--shadow-soft);
}
.property-price {
    color: #29232d;
    background: linear-gradient(90deg,#29232d,#72547d 72%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.contact-actions .primary-btn,
.contact-actions .secondary-btn,
.sticky-side-box .secondary-btn { gap: 7px; }
.property-section {
    border-color: #e4dfe6;
    background: linear-gradient(180deg,#fff,#fdfcfd);
    box-shadow: 0 8px 28px rgba(44,35,48,.035);
}
.feature-cards > div {
    background: linear-gradient(145deg,#f8f2f8,#f0f5f8);
    border: 1px solid rgba(125,95,136,.07);
}
.feature-icon {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    color: #6f5578 !important;
    background: linear-gradient(145deg,#eee4ef,#e6eff5);
}
.feature-icon .ui-icon { width: 19px; height: 19px; }
.property-amenities > div { min-height: 42px; }
.property-amenities > div .amenity-icon {
    width: 29px;
    height: 29px;
    flex: 0 0 29px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: #55766e;
    background: linear-gradient(145deg,#edf6f2,#edf3f7);
}
.amenity-icon .ui-icon { width: 16px; height: 16px; stroke-width: 2.2; }
.description-warning { background: linear-gradient(135deg,#fff8ef,#f9f3ec); }
.sticky-side-box {
    border-color: #e2dce5;
    background: linear-gradient(145deg,#fff,#f7f4f8);
}
.site-footer {
    background:
        radial-gradient(circle at 18% 0, rgba(183,133,159,.12), transparent 30%),
        linear-gradient(110deg,#252128,#332c37 53%,#273542 100%);
}
.footer-links a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.footer-links .ui-icon { width: 15px; height: 15px; opacity: .75; }

@media (max-width: 980px) {
    .main-nav > a { width: 100%; }
    .main-nav > a:not(.add-btn) { padding: 10px 12px; border-radius: 9px; }
    .main-nav > a:not(.add-btn):hover { background: rgba(255,255,255,.055); }
}

@media (max-width: 640px) {
    .category-pills a { padding: 10px 12px; }
    .search-submit, .primary-btn { min-height: 50px; }
    .catalog-map-icon { width: 60px; height: 60px; border-radius: 18px; }
    .catalog-map-icon .ui-icon { width: 28px; height: 28px; }
}
.catalog-map-placeholder > .catalog-map-icon {
    width: 72px;
    height: 72px;
    display: grid;
    place-items: center;
    border-radius: 22px;
    color: #fff;
    background: var(--accent-gradient);
    box-shadow: 0 15px 34px rgba(91,65,102,.20);
    transform: rotate(-2deg);
    font-size: inherit;
}
@media (max-width: 640px) {
    .catalog-map-placeholder > .catalog-map-icon { width: 60px; height: 60px; border-radius: 18px; }
}

/* ===== Stage 4 interaction polish ===== */
.catalog-filters { padding-bottom: 18px; }
.catalog-map-panel {
    position: relative;
    min-height: 620px;
    border: 1px solid #ded7e2;
    border-radius: 20px;
    background: linear-gradient(135deg,#f8f5f8,#edf3f7);
    overflow: hidden;
    box-shadow: var(--shadow-soft);
}
.catalog-map { width: 100%; height: 620px; }
.catalog-map-loading {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 12px;
    text-align: center;
    background:
        radial-gradient(circle at 25% 25%, rgba(185,132,159,.14) 0 7%, transparent 8%),
        linear-gradient(135deg,rgba(248,245,248,.94),rgba(237,243,247,.94));
    color: var(--muted);
}
.catalog-map-loading[hidden] { display: none; }
.catalog-map-loading strong { color: var(--text); font-size: 18px; }
.catalog-map-loading > span:last-child { font-size: 12px; }
.catalog-map .maplibregl-ctrl-group {
    border: 1px solid rgba(90,65,102,.12);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 22px rgba(45,35,49,.10);
}
.catalog-map .maplibregl-popup-content {
    min-width: 220px;
    padding: 10px;
    border-radius: 14px;
    box-shadow: 0 14px 36px rgba(42,33,46,.18);
}
.avo-map-popup { display: grid; gap: 8px; }
.avo-map-popup img { width: 100%; height: 110px; object-fit: cover; border-radius: 9px; }
.avo-map-popup strong { font-size: 12px; line-height: 1.35; }
.avo-map-popup span { color: var(--purple-dark); font-size: 16px; font-weight: 700; }
.avo-map-popup a {
    display: inline-flex;
    justify-content: center;
    padding: 9px 12px;
    border-radius: 9px;
    color: #fff;
    background: var(--accent-gradient);
    font-size: 11px;
    font-weight: 700;
}

.gallery-main { isolation: isolate; }
.gallery-image-button {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}
.gallery-image-button > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-main .listing-tag { z-index: 4; }
.gallery-nav,
.gallery-fullscreen-button {
    position: absolute;
    z-index: 5;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.5);
    color: #fff;
    background: rgba(31,26,34,.56);
    -webkit-backdrop-filter: blur(9px);
    backdrop-filter: blur(9px);
    cursor: pointer;
    transition: transform .18s ease, background .18s ease;
}
.gallery-nav:hover,
.gallery-fullscreen-button:hover { background: rgba(91,65,102,.78); }
.gallery-nav:active,
.gallery-fullscreen-button:active { transform: scale(.96); }
.gallery-nav {
    top: 50%;
    width: 44px;
    height: 58px;
    margin-top: -29px;
    border-radius: 14px;
    font-size: 34px;
    line-height: 1;
}
.gallery-nav-prev { left: 14px; }
.gallery-nav-next { right: 14px; }
.gallery-fullscreen-button {
    top: 14px;
    right: 14px;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    font-size: 21px;
}
.gallery-counter {
    position: absolute;
    z-index: 5;
    right: 14px;
    bottom: 14px;
    padding: 7px 10px;
    border-radius: 999px;
    color: #fff;
    background: rgba(31,26,34,.60);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    font-size: 11px;
    font-weight: 700;
}
.gallery-thumbs { overflow-x: auto; grid-template-columns: repeat(6,minmax(105px,1fr)); scrollbar-width: thin; }
.gallery-thumbs button { min-width: 0; }
.gallery-thumbs button.active { border-color: #876992; box-shadow: 0 0 0 2px rgba(135,105,146,.10); }
.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    grid-template-columns: 72px minmax(0,1fr) 72px;
    align-items: center;
    padding: 34px;
    background: rgba(18,16,20,.96);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
.gallery-lightbox[hidden] { display: none; }
.gallery-is-open,
.gallery-is-open body { overflow: hidden; }
.gallery-lightbox-stage {
    position: relative;
    min-width: 0;
    height: min(86vh, 900px);
    display: grid;
    place-items: center;
}
.gallery-lightbox-stage img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 10px;
    user-select: none;
}
.gallery-lightbox-close,
.gallery-lightbox-nav {
    border: 1px solid rgba(255,255,255,.20);
    color: #fff;
    background: rgba(255,255,255,.08);
    cursor: pointer;
}
.gallery-lightbox-close {
    position: absolute;
    z-index: 2;
    top: 20px;
    right: 20px;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    font-size: 32px;
}
.gallery-lightbox-nav {
    width: 54px;
    height: 72px;
    justify-self: center;
    border-radius: 16px;
    font-size: 38px;
}
.gallery-lightbox-counter {
    position: absolute;
    left: 50%;
    bottom: 16px;
    transform: translateX(-50%);
    padding: 8px 12px;
    border-radius: 999px;
    color: #fff;
    background: rgba(0,0,0,.50);
    font-size: 12px;
    font-weight: 700;
}
.contact-actions a.primary-btn,
.contact-actions a.secondary-btn {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}
.contact-actions a.primary-btn { grid-column: 1/-1; }

@media (max-width: 980px) {
    .catalog-map, .catalog-map-panel { min-height: 540px; height: 540px; }
}
@media (max-width: 640px) {
    .catalog-map, .catalog-map-panel { min-height: 460px; height: 460px; border-radius: 16px; }
    .gallery-nav { width: 38px; height: 48px; margin-top: -24px; font-size: 29px; }
    .gallery-nav-prev { left: 8px; }
    .gallery-nav-next { right: 8px; }
    .gallery-fullscreen-button { top: 8px; right: 8px; width: 38px; height: 38px; }
    .gallery-counter { right: 8px; bottom: 8px; }
    .gallery-thumbs { display: flex; gap: 7px; }
    .gallery-thumbs button { flex: 0 0 105px; }
    .gallery-lightbox { grid-template-columns: 44px minmax(0,1fr) 44px; padding: 18px 8px; }
    .gallery-lightbox-stage { height: 90vh; }
    .gallery-lightbox-nav { width: 40px; height: 58px; border-radius: 12px; font-size: 31px; }
    .gallery-lightbox-close { top: 12px; right: 12px; width: 42px; height: 42px; border-radius: 13px; }
}

/* ===== AVO.GE 2.0 · Stage 5 account / companies / super-admin ===== */
.compact-hero { padding-bottom: 32px; }
.compact-hero .eyebrow { margin-bottom: 10px; color: var(--purple-dark); background: rgba(123,90,136,.08); border: 1px solid rgba(123,90,136,.12); }
.compact-hero .eyebrow .ui-icon { width: 15px; height: 15px; }

.account-shell { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 26px; padding-top: 34px; }
.account-sidebar { position: sticky; top: 24px; align-self: start; display: grid; gap: 14px; }
.account-user-card, .account-balance-card, .account-nav { border: 1px solid rgba(90,74,98,.12); background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(248,246,249,.94)); box-shadow: 0 14px 34px rgba(42,31,48,.06); border-radius: 18px; }
.account-user-card { display:flex; align-items:center; gap:12px; padding:16px; }
.account-avatar { width:44px; height:44px; display:grid; place-items:center; flex:0 0 auto; border-radius:14px; color:#fff; font-size:19px; font-weight:700; background:linear-gradient(135deg,#70547c,#8f7598 58%,#7791a2); box-shadow:0 8px 20px rgba(88,67,98,.22); }
.account-user-card strong, .account-user-card span { display:block; }
.account-user-card strong { font-size:14px; }
.account-user-card span { margin-top:3px; color:var(--muted); font-size:11px; }
.account-nav { overflow:hidden; padding:8px; }
.account-nav a { display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius:11px; color:#625b65; font-size:13px; font-weight:700; transition:.18s ease; }
.account-nav a:hover { background:rgba(123,90,136,.06); color:var(--purple-dark); }
.account-nav a.active { color:#fff; background:linear-gradient(110deg,#745681,#8e6c97 55%,#728b9d); box-shadow:0 9px 20px rgba(95,72,106,.18); }
.account-nav .ui-icon { width:17px; height:17px; }
.account-balance-card { padding:16px; background:linear-gradient(135deg,rgba(126,94,139,.11),rgba(116,143,160,.10),rgba(225,183,203,.10)); }
.account-balance-card > span { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.account-balance-card strong { display:block; margin:6px 0 12px; font-size:24px; }
.account-balance-card a { display:inline-flex; align-items:center; gap:7px; color:var(--purple-dark); font-size:12px; font-weight:700; }
.account-balance-card a .ui-icon { width:14px; height:14px; }
.account-content { min-width:0; }
.account-demo-notice { margin-bottom:18px; }
.demo-notice { display:flex; align-items:center; gap:10px; padding:12px 14px; border:1px solid rgba(110,92,119,.12); border-radius:13px; color:#655d69; background:linear-gradient(110deg,rgba(123,90,136,.06),rgba(117,143,160,.07)); font-size:12px; }
.demo-notice .ui-icon { width:17px; height:17px; color:var(--purple-dark); }
.account-page-heading { display:flex; justify-content:space-between; gap:18px; align-items:center; margin-bottom:18px; }
.account-page-heading h2 { margin:0; font-size:28px; letter-spacing:-.02em; }
.account-page-heading p { margin:5px 0 0; color:var(--muted); font-size:13px; }
.primary-btn.small { height:42px; padding:0 15px; gap:7px; border:0; }
.primary-btn.small .ui-icon { width:15px; height:15px; }
.account-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:22px; }
.account-stat-grid article { display:flex; align-items:center; gap:12px; min-height:92px; padding:15px; border:1px solid rgba(92,75,100,.10); border-radius:17px; background:linear-gradient(145deg,#fff,#faf8fb); box-shadow:0 12px 26px rgba(42,31,48,.045); }
.stat-icon { width:42px; height:42px; flex:0 0 auto; display:grid; place-items:center; border-radius:13px; color:var(--purple-dark); background:linear-gradient(135deg,rgba(123,90,136,.12),rgba(114,143,161,.10)); }
.stat-icon .ui-icon { width:20px; height:20px; }
.account-stat-grid strong, .account-stat-grid span { display:block; }
.account-stat-grid strong { font-size:21px; }
.account-stat-grid article div span { margin-top:2px; color:var(--muted); font-size:11px; }
.account-section, .table-card, .company-account-card, .balance-hero-card, .payment-method-preview, .settings-demo-form, .favorites-account-bridge { border:1px solid rgba(90,74,98,.11); border-radius:18px; background:rgba(255,255,255,.94); box-shadow:0 14px 34px rgba(42,31,48,.05); }
.account-section { padding:18px; }
.section-title-row { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.section-title-row h2, .section-title-row h3 { margin:0; }
.section-title-row a { color:var(--purple-dark); font-size:12px; font-weight:700; }
.account-listing-list { display:grid; gap:10px; margin-top:14px; }
.account-listing-row { display:grid; grid-template-columns:105px minmax(0,1fr) auto; gap:14px; align-items:center; padding:10px; border:1px solid rgba(96,80,103,.09); border-radius:14px; background:linear-gradient(145deg,#fff,#fbfafc); }
.account-listing-thumb { height:78px; overflow:hidden; border-radius:11px; }
.account-listing-thumb img { width:100%; height:100%; display:block; object-fit:cover; }
.account-listing-main h4 { margin:5px 0 4px; font-size:14px; }
.account-listing-main p { margin:0; color:var(--muted); font-size:12px; }
.listing-row-top { display:flex; align-items:center; gap:8px; }
.listing-row-top small { color:#9a939d; }
.status-pill { display:inline-flex; align-items:center; width:max-content; min-height:23px; padding:0 8px; border-radius:999px; font-size:10px; font-weight:700; }
.status-pill.active { color:#2f6c59; background:#e8f4ef; }
.status-pill.pending { color:#8a6927; background:#faf1d9; }
.status-pill.blocked { color:#92504d; background:#f8e4e3; }
.account-listing-actions { display:flex; flex-direction:column; gap:5px; min-width:116px; }
.account-listing-actions a, .account-listing-actions button { display:flex; align-items:center; gap:6px; padding:7px 8px; border:0; border-radius:9px; color:#625b65; background:transparent; font-size:11px; font-weight:700; cursor:pointer; text-align:left; }
.account-listing-actions button:hover, .account-listing-actions a:hover { background:rgba(123,90,136,.07); color:var(--purple-dark); }
.account-listing-actions .accent { color:var(--purple-dark); background:rgba(123,90,136,.06); }
.account-listing-actions .ui-icon { width:14px; height:14px; }
.account-status-tabs { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:14px; }
.account-status-tabs button { border:1px solid rgba(101,84,109,.12); border-radius:999px; padding:8px 11px; color:#6d6570; background:#fff; font-size:11px; font-weight:700; }
.account-status-tabs button.active { color:#fff; border-color:transparent; background:linear-gradient(110deg,#755781,#8d7095); }
.account-status-tabs b { margin-left:3px; }
.promotion-badges { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.promo-badge { display:inline-flex; align-items:center; gap:4px; padding:4px 7px; border-radius:7px; font-size:9px; font-weight:700; }
.promo-badge.premium { color:#8b5d2c; background:#fff0df; }
.promo-badge.vip { color:#724c81; background:#f1e7f4; }
.promo-badge.highlight { color:#326779; background:#e6f1f5; }
.favorites-account-bridge { display:flex; align-items:center; gap:16px; padding:22px; }
.favorites-account-bridge > .ui-icon { width:32px; height:32px; color:#80618a; }
.favorites-account-bridge div { flex:1; }
.favorites-account-bridge strong, .favorites-account-bridge span { display:block; }
.favorites-account-bridge strong { font-size:27px; }
.favorites-account-bridge span { color:var(--muted); font-size:12px; }
.secondary-btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:40px; padding:0 14px; border:1px solid rgba(105,87,113,.16); border-radius:10px; color:var(--purple-dark); background:linear-gradient(145deg,#fff,#faf8fb); font-weight:700; cursor:pointer; }
.secondary-btn .ui-icon { width:15px; height:15px; }
.company-account-card { display:flex; align-items:center; gap:18px; padding:22px; }
.company-logo-placeholder, .company-logo-large { display:grid; place-items:center; flex:0 0 auto; color:#fff; font-weight:700; background:linear-gradient(135deg,#70547c,#92779a 55%,#7792a3); box-shadow:0 12px 26px rgba(81,63,91,.18); }
.company-logo-placeholder { width:64px; height:64px; border-radius:18px; font-size:26px; }
.company-account-info { flex:1; }
.company-account-info h3 { margin:7px 0 4px; }
.company-account-info p { margin:0; color:var(--muted); font-size:12px; }
.company-account-actions { display:flex; gap:8px; margin-top:13px; }
.balance-hero-card { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px; color:#fff; background:linear-gradient(115deg,#64506d,#82688a 54%,#70889a); }
.balance-hero-card span, .balance-hero-card strong { display:block; }
.balance-hero-card span { color:rgba(255,255,255,.72); font-size:12px; }
.balance-hero-card strong { margin-top:6px; font-size:34px; }
.balance-hero-card .primary-btn { border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.14); box-shadow:none; }
.payment-method-preview { display:flex; align-items:center; gap:14px; margin-top:14px; padding:18px; }
.payment-method-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; color:#fff; background:#3374b9; font-size:18px; font-weight:700; }
.payment-method-preview > div:nth-child(2) { flex:1; }
.payment-method-preview strong, .payment-method-preview span { display:block; }
.payment-method-preview span { margin-top:3px; color:var(--muted); font-size:11px; }
.table-card { overflow:hidden; }
.account-table { width:100%; border-collapse:collapse; }
.account-table th, .account-table td { padding:13px 15px; border-bottom:1px solid rgba(99,82,107,.08); text-align:left; font-size:12px; }
.account-table th { color:#7c7480; background:#faf9fb; font-size:10px; text-transform:uppercase; letter-spacing:.05em; }
.account-table tr:last-child td { border-bottom:0; }
.account-table .positive { color:#2f765e; font-weight:700; }
.account-table .negative { color:#8a5552; font-weight:700; }
.settings-demo-form { display:grid; gap:14px; padding:22px; }
.settings-security-card { display:flex; align-items:flex-start; gap:12px; padding:14px; border-radius:13px; background:linear-gradient(110deg,rgba(123,90,136,.07),rgba(112,139,156,.08)); }
.settings-security-card .ui-icon { width:21px; height:21px; color:var(--purple-dark); }
.settings-security-card strong, .settings-security-card span { display:block; }
.settings-security-card span { margin-top:4px; color:var(--muted); font-size:11px; line-height:1.55; }

.companies-section { padding-top:34px; }
.companies-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; }
.companies-toolbar > div { display:flex; align-items:baseline; gap:7px; }
.companies-toolbar strong { font-size:25px; }
.companies-toolbar span { color:var(--muted); font-size:12px; }
.company-search-controls { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.company-city-filter { min-width:210px; position:relative; }
.company-city-filter > .ui-icon { position:absolute; left:13px; top:50%; width:15px; height:15px; transform:translateY(-50%); z-index:2; color:#796c7d; pointer-events:none; }
.company-city-filter .avo-select-trigger { padding-left:38px; }
.company-search { display:flex; align-items:center; gap:8px; width:min(340px,100%); height:44px; padding:0 12px; border:1px solid rgba(100,83,108,.14); border-radius:12px; background:#fff; }
.company-search .ui-icon { width:16px; height:16px; color:#7e7281; }
.company-search input { width:100%; border:0; outline:0; background:transparent; }
.company-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.company-card { padding:20px; border:1px solid rgba(97,80,105,.11); border-radius:19px; background:linear-gradient(145deg,#fff,#faf9fb); box-shadow:0 15px 35px rgba(42,31,48,.05); }
.company-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.company-card h2 { margin:16px 0 8px; font-size:19px; }
.company-card > p { min-height:42px; margin:0; color:var(--muted); font-size:12px; line-height:1.55; }
.company-meta { display:flex; gap:14px; flex-wrap:wrap; margin-top:16px; color:#6d6570; font-size:11px; }
.company-meta span { display:flex; align-items:center; gap:5px; }
.company-meta .ui-icon { width:13px; height:13px; }
.company-card-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:17px; padding-top:14px; border-top:1px solid rgba(100,82,108,.08); }
.company-card-actions .text-link { display:flex; align-items:center; gap:5px; font-size:11px; }
.company-card-actions .text-link .ui-icon { width:13px; height:13px; }
.company-profile-hero { padding:118px 0 32px; background:radial-gradient(circle at 12% 15%,rgba(215,184,201,.18),transparent 28%),radial-gradient(circle at 88% 18%,rgba(108,139,158,.15),transparent 30%),linear-gradient(135deg,#f7f3f8,#f6f8fa); border-bottom:1px solid rgba(100,82,108,.08); }
.company-profile-head { display:flex; align-items:center; gap:20px; }
.company-logo-large { width:88px; height:88px; border-radius:24px; font-size:34px; }
.company-profile-head h1 { margin:7px 0 3px; font-size:34px; letter-spacing:-.03em; }
.company-profile-head p { margin:0; color:var(--muted); }
.company-contact-actions { margin-left:auto; display:flex; gap:8px; }
.company-contact-actions .primary-btn { padding:0 16px; border:0; gap:6px; }
.company-profile-content { padding-top:28px; }
.company-about-card { margin-bottom:28px; padding:24px; border:1px solid rgba(96,79,104,.11); border-radius:18px; background:#fff; }
.company-about-card h2 { margin:0 0 10px; }
.company-about-card p { color:var(--muted); line-height:1.65; }
.company-contact-list { display:flex; gap:18px; flex-wrap:wrap; margin-top:15px; color:#645d67; font-size:12px; }
.company-contact-list span { display:flex; align-items:center; gap:6px; }
.company-contact-list .ui-icon { width:14px; height:14px; }
.company-listing-grid { margin-top:16px; }

.page-admin { min-width:320px; background:#f2f1f4; }
.page-admin .avo-svg-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.admin-app { min-height:100vh; display:grid; grid-template-columns:230px minmax(0,1fr); }
.admin-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:18px 14px; color:#e9e5eb; background:linear-gradient(180deg,#26212a,#2f2934 56%,#26313b); box-shadow:8px 0 28px rgba(31,26,35,.12); }
.admin-brand { display:flex; align-items:center; gap:10px; padding:7px 8px 20px; border-bottom:1px solid rgba(255,255,255,.08); }
.admin-brand img { width:92px; height:auto; }
.admin-brand span { color:#a9a1ad; font-size:9px; font-weight:700; letter-spacing:.08em; }
.admin-sidebar nav { display:grid; gap:4px; margin-top:18px; }
.admin-sidebar nav a, .admin-site-link { display:flex; align-items:center; gap:10px; padding:10px 11px; border-radius:10px; color:#c9c2cc; font-size:12px; font-weight:730; }
.admin-sidebar nav a:hover, .admin-site-link:hover { color:#fff; background:rgba(255,255,255,.06); }
.admin-sidebar nav a.active { color:#fff; background:linear-gradient(100deg,rgba(128,94,141,.78),rgba(107,130,147,.7)); box-shadow:0 8px 20px rgba(0,0,0,.12); }
.admin-sidebar .ui-icon { width:16px; height:16px; }
.admin-site-link { margin-top:auto; border-top:1px solid rgba(255,255,255,.08); border-radius:0; padding-top:16px; }
.admin-main { min-width:0; }
.admin-topbar { height:72px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 28px; border-bottom:1px solid rgba(78,64,84,.08); background:rgba(255,255,255,.88); backdrop-filter:blur(12px); }
.admin-topbar > div:first-child { display:grid; }
.admin-kicker { color:#8c8190; font-size:9px; font-weight:700; letter-spacing:.1em; }
.admin-topbar strong { margin-top:2px; font-size:16px; }
.admin-user { display:flex; align-items:center; gap:7px; color:#5f5862; font-size:11px; font-weight:700; }
.status-dot { width:8px; height:8px; border-radius:50%; background:#58a985; box-shadow:0 0 0 4px rgba(88,169,133,.12); }
.admin-demo-banner { display:flex; align-items:center; gap:8px; margin:16px 24px 0; padding:10px 12px; border:1px solid rgba(118,91,128,.11); border-radius:11px; color:#665e69; background:linear-gradient(110deg,rgba(123,90,136,.07),rgba(110,138,156,.07)); font-size:11px; }
.admin-demo-banner .ui-icon { width:16px; height:16px; color:#72567e; }
.admin-page-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px 14px; }
.admin-page-heading h1 { margin:0; font-size:26px; letter-spacing:-.025em; }
.admin-page-heading p { margin:4px 0 0; color:#817987; font-size:11px; }
.admin-primary { display:inline-flex; align-items:center; gap:6px; min-height:38px; padding:0 13px; border:0; border-radius:9px; color:#fff; background:linear-gradient(105deg,#73567e,#8b6d93 55%,#718a9c); font-weight:700; cursor:pointer; }
.admin-primary .ui-icon { width:14px; height:14px; }
.admin-stat-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; padding:0 24px; }
.admin-stat-grid article { display:flex; align-items:center; gap:10px; min-height:85px; padding:14px; border:1px solid rgba(83,67,91,.08); border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(42,34,47,.035); }
.admin-stat-grid article > span { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; color:#765c81; background:linear-gradient(135deg,rgba(123,90,136,.10),rgba(115,143,161,.09)); }
.admin-stat-grid .ui-icon { width:18px; height:18px; }
.admin-stat-grid strong, .admin-stat-grid small { display:block; }
.admin-stat-grid strong { font-size:19px; }
.admin-stat-grid small { margin-top:2px; color:#8b838f; font-size:9px; }
.admin-two-col { display:grid; grid-template-columns:1.45fr .8fr; gap:14px; padding:14px 24px 28px; }
.admin-card { border:1px solid rgba(84,68,91,.08); border-radius:15px; background:#fff; box-shadow:0 8px 24px rgba(42,34,47,.035); overflow:hidden; }
.admin-card > h2 { margin:0; padding:17px 18px 7px; font-size:15px; }
.admin-card-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 17px; border-bottom:1px solid rgba(82,67,89,.07); }
.admin-card-heading h2 { margin:0; font-size:14px; }
.admin-card-heading a { color:#76577f; font-size:10px; font-weight:700; }
.moderation-list article { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 16px; border-bottom:1px solid rgba(83,68,90,.06); }
.moderation-list article:last-child { border-bottom:0; }
.moderation-list article > div:first-child { display:grid; gap:4px; }
.moderation-list strong { font-size:11px; }
.moderation-list small { color:#8c8490; font-size:9px; }
.moderation-list article > div:last-child { display:flex; gap:5px; }
.admin-icon-btn { width:30px; height:30px; display:grid; place-items:center; border:0; border-radius:8px; cursor:pointer; }
.admin-icon-btn .ui-icon { width:14px; height:14px; }
.admin-icon-btn.accept { color:#2f795e; background:#e9f5ef; }
.admin-icon-btn.reject { color:#93534f; background:#f8e9e7; font-size:19px; }
.admin-setting-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 17px; border-bottom:1px solid rgba(83,68,90,.06); }
.admin-setting-row strong, .admin-setting-row span { display:block; }
.admin-setting-row strong { font-size:11px; }
.admin-setting-row span { margin-top:2px; color:#8c8490; font-size:9px; }
.toggle-switch { width:40px; height:23px; padding:2px; border:0; border-radius:999px; background:#d8d4da; cursor:pointer; }
.toggle-switch span { display:block; width:19px; height:19px; border-radius:50%; background:#fff; box-shadow:0 2px 7px rgba(0,0,0,.15); transition:.18s ease; }
.toggle-switch.on { background:linear-gradient(100deg,#795c84,#7d8e9b); }
.toggle-switch.on span { transform:translateX(17px); }
.admin-table-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 15px; border-bottom:1px solid rgba(82,67,89,.07); }
.admin-table-toolbar label { display:flex; align-items:center; gap:7px; width:min(360px,100%); height:36px; padding:0 10px; border:1px solid rgba(91,75,99,.11); border-radius:9px; background:#faf9fb; }
.admin-table-toolbar label .ui-icon { width:14px; height:14px; color:#8b818f; }
.admin-table-toolbar input { width:100%; border:0; outline:0; background:transparent; font-size:11px; }
.admin-table-toolbar select { height:36px; border:1px solid rgba(91,75,99,.11); border-radius:9px; padding:0 9px; background:#fff; font-size:10px; }
.admin-table-wrap { overflow:auto; }
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th, .admin-table td { padding:11px 13px; border-bottom:1px solid rgba(82,67,89,.06); text-align:left; white-space:nowrap; font-size:10px; }
.admin-table th { color:#817985; background:#faf9fb; font-size:9px; text-transform:uppercase; letter-spacing:.04em; }
.admin-table td:nth-child(2) strong, .admin-table td:nth-child(2) small { display:block; }
.admin-table td:nth-child(2) small { margin-top:2px; color:#928a96; }
.admin-actions { display:flex; justify-content:flex-end; gap:4px; }
.admin-actions button { width:29px; height:29px; display:grid; place-items:center; border:0; border-radius:8px; color:#645d67; background:#f4f2f5; cursor:pointer; }
.admin-actions button.danger { color:#96514f; background:#f9ebea; }
.admin-actions .ui-icon { width:13px; height:13px; }
.admin-settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:0 24px 28px; }
.admin-field { display:grid; gap:6px; padding:14px 17px; font-size:10px; font-weight:700; }
.admin-field input { height:36px; border:1px solid rgba(91,75,99,.12); border-radius:8px; padding:0 9px; }
.admin-service-row { display:grid; grid-template-columns:110px 1fr 1fr; gap:10px; align-items:center; padding:12px 17px; border-top:1px solid rgba(82,67,89,.06); }
.admin-service-row label { color:#746d77; font-size:9px; }
.admin-service-row input { width:54px; height:30px; border:1px solid rgba(91,75,99,.12); border-radius:7px; padding:0 6px; }
.admin-cron-list { list-style:none; margin:4px 0 0; padding:0 17px 14px; }
.admin-cron-list li { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid rgba(82,67,89,.06); }
.admin-cron-list li:last-child { border-bottom:0; }
.cron-ok { width:24px; height:24px; display:grid; place-items:center; border-radius:7px; color:#2f795e; background:#e8f4ef; font-weight:700; }
.admin-cron-list strong, .admin-cron-list small { display:block; }
.admin-cron-list strong { font-size:10px; }
.admin-cron-list small { margin-top:2px; color:#8e8791; font-size:8px; }
.admin-placeholder-card { min-height:300px; display:grid; place-items:center; text-align:center; align-content:center; margin:0 24px 28px; padding:30px; }
.admin-placeholder-card > .ui-icon { width:38px; height:38px; color:#785d82; }
.admin-placeholder-card h2 { margin:12px 0 4px; }
.admin-placeholder-card p { margin:0; color:#8b838e; font-size:11px; }

@media (max-width: 980px) {
    .account-shell { grid-template-columns:1fr; }
    .account-sidebar { position:static; grid-template-columns:1fr 1fr; }
    .account-nav { grid-column:1/-1; display:flex; overflow-x:auto; gap:3px; }
    .account-nav a { flex:0 0 auto; }
    .account-stat-grid { grid-template-columns:repeat(2,1fr); }
    .company-grid { grid-template-columns:repeat(2,1fr); }
    .company-profile-head { flex-wrap:wrap; }
    .company-contact-actions { width:100%; margin-left:108px; }
    .admin-app { grid-template-columns:76px minmax(0,1fr); }
    .admin-brand { justify-content:center; }
    .admin-brand img { width:54px; }
    .admin-brand span, .admin-sidebar nav a span, .admin-site-link span { display:none; }
    .admin-sidebar nav a, .admin-site-link { justify-content:center; }
    .admin-sidebar .ui-icon { width:19px; height:19px; }
    .admin-stat-grid { grid-template-columns:repeat(3,1fr); }
    .admin-two-col, .admin-settings-grid { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
    .account-sidebar { grid-template-columns:1fr; }
    .account-nav { grid-column:auto; }
    .account-stat-grid { grid-template-columns:1fr 1fr; }
    .account-page-heading { align-items:flex-start; flex-direction:column; }
    .account-listing-row { grid-template-columns:82px minmax(0,1fr); }
    .account-listing-thumb { height:68px; }
    .account-listing-actions { grid-column:1/-1; flex-direction:row; min-width:0; overflow-x:auto; }
    .favorites-account-bridge, .company-account-card, .payment-method-preview { align-items:flex-start; flex-wrap:wrap; }
    .company-account-info { min-width:calc(100% - 85px); }
    .company-account-actions { width:100%; }
    .balance-hero-card { align-items:flex-start; flex-direction:column; }
    .account-table { min-width:580px; }
    .company-grid { grid-template-columns:1fr; }
    .companies-toolbar { align-items:flex-start; flex-direction:column; }
    .company-search { width:100%; }
    .company-profile-hero { padding-top:105px; }
    .company-profile-head { align-items:flex-start; }
    .company-logo-large { width:70px; height:70px; border-radius:19px; }
    .company-profile-head h1 { font-size:27px; }
    .company-contact-actions { margin-left:0; }
    .company-listing-grid { grid-template-columns:1fr; }
    .admin-app { display:block; }
    .admin-sidebar { position:relative; width:100%; height:auto; padding:10px; }
    .admin-brand { display:none; }
    .admin-sidebar nav { margin:0; grid-template-columns:repeat(4,1fr); }
    .admin-sidebar nav a { padding:9px 4px; }
    .admin-sidebar nav a:nth-child(n+5) { display:none; }
    .admin-site-link { display:none; }
    .admin-topbar { height:58px; padding:0 14px; }
    .admin-demo-banner { margin:10px 12px 0; }
    .admin-page-heading { padding:17px 12px 12px; align-items:flex-start; flex-direction:column; }
    .admin-stat-grid { grid-template-columns:1fr 1fr; padding:0 12px; }
    .admin-two-col, .admin-settings-grid { padding:12px; }
    .admin-table { min-width:720px; }
    .admin-table-toolbar { align-items:stretch; flex-direction:column; }
    .admin-table-toolbar label { width:100%; }
    .admin-placeholder-card { margin:0 12px 20px; }
}

/* ===== Stage 6 icon geometry polish ===== */
.ui-icon {
    display: block;
    vertical-align: middle;
    overflow: visible;
    shape-rendering: geometricPrecision;
    stroke-width: 1.85;
}
.account-nav a { min-height: 42px; }
.account-nav a .ui-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    stroke-width: 1.9;
}
.account-stat-grid article { min-height: 96px; }
.stat-icon {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(112,86,123,.08);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.82);
}
.stat-icon .ui-icon { width: 21px; height: 21px; stroke-width: 1.9; }
.account-listing-actions a,
.account-listing-actions button { min-height: 31px; }
.account-listing-actions .ui-icon { width: 15px; height: 15px; flex: 0 0 15px; }
.account-balance-card a .ui-icon,
.primary-btn.small .ui-icon,
.demo-notice .ui-icon { flex: 0 0 auto; }
.admin-sidebar .ui-icon,
.admin-stat-grid .ui-icon,
.admin-actions .ui-icon,
.admin-icon-btn .ui-icon { display:block; }

/* ===== Stage 6 database setup / protected super-admin ===== */
.setup-body {
    min-height: 100vh;
    margin: 0;
    color: var(--text);
    background:
        radial-gradient(circle at 14% 8%, rgba(185,132,159,.14), transparent 28%),
        radial-gradient(circle at 88% 14%, rgba(118,147,173,.14), transparent 30%),
        linear-gradient(145deg,#f7f4f8,#eef3f7);
}
.setup-shell { min-height:100vh; display:grid; place-items:center; padding:42px 18px; }
.setup-card {
    width:min(620px,100%);
    padding:34px;
    border:1px solid rgba(89,71,97,.12);
    border-radius:24px;
    background:rgba(255,255,255,.95);
    box-shadow:0 28px 70px rgba(45,35,50,.12);
}
.setup-logo { width:126px; height:auto; display:block; margin:0 auto 17px; }
.setup-stage { display:block; width:max-content; margin:0 auto 8px; padding:6px 10px; border-radius:999px; color:#6d5577; background:linear-gradient(135deg,#f1e9f2,#edf3f7); font-size:10px; font-weight:700; letter-spacing:.06em; }
.setup-card h1 { margin:0; text-align:center; font-size:30px; letter-spacing:-.03em; }
.setup-intro { margin:12px auto 24px; max-width:530px; color:var(--muted); text-align:center; font-size:13px; line-height:1.65; }
.setup-alert { display:flex; align-items:flex-start; gap:11px; margin:20px 0; padding:14px; border-radius:13px; font-size:12px; line-height:1.5; }
.setup-alert .ui-icon { width:20px; height:20px; flex:0 0 20px; margin-top:1px; }
.setup-alert strong,.setup-alert span { display:block; }
.setup-alert strong { margin-bottom:2px; }
.setup-alert.error { color:#784844; border:1px solid #efd3d0; background:#fff3f1; }
.setup-alert.success { color:#356a58; border:1px solid #cfe7dd; background:#eff9f5; }
.setup-form { display:grid; gap:13px; margin-top:22px; }
.setup-form h2 { margin:10px 0 0; padding-top:8px; border-top:1px solid var(--line); font-size:15px; }
.setup-form label { display:grid; gap:6px; }
.setup-form label span { color:#6f6872; font-size:11px; font-weight:700; }
.setup-form input { width:100%; height:44px; box-sizing:border-box; padding:0 12px; border:1px solid #ded8e1; border-radius:10px; outline:0; background:linear-gradient(180deg,#fff,#fcfbfd); }
.setup-form input:focus { border-color:#9a7ca4; box-shadow:0 0 0 3px rgba(123,90,136,.095); }
.setup-grid.two { display:grid; grid-template-columns:1fr 120px; gap:12px; }
.setup-submit { width:100%; min-height:46px; margin-top:6px; justify-content:center; }
.setup-actions { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-top:22px; }
.setup-back { display:block; margin-top:20px; text-align:center; color:#766d79; font-size:12px; }
.admin-login-card { width:min(460px,100%); }
.admin-login-card .setup-form { margin-top:20px; }
.admin-user { display:flex; align-items:center; gap:7px; }
.admin-logout { margin-left:7px; padding-left:9px; border-left:1px solid rgba(87,72,94,.15); color:#795e83; font-size:9px; font-weight:700; }

@media (max-width:640px) {
    .setup-card { padding:24px 18px; border-radius:20px; }
    .setup-card h1 { font-size:25px; }
    .setup-grid.two { grid-template-columns:1fr; }
}

/* ===== Stage 7: real user auth + migrated accounts ===== */
.auth-page{min-height:calc(100vh - 220px);display:grid;place-items:center;padding:70px 20px 90px}
.auth-card{width:min(100%,520px);background:rgba(255,255,255,.92);border:1px solid rgba(104,71,132,.14);border-radius:28px;padding:36px;box-shadow:0 24px 70px rgba(52,37,61,.11);backdrop-filter:blur(18px)}
.auth-card-wide{width:min(100%,620px)}
.auth-logo{text-align:center;margin-bottom:12px}.auth-logo img{width:126px;height:auto}
.auth-card .eyebrow{display:flex;justify-content:center;align-items:center;gap:7px;color:#76568e;font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.auth-card h1{text-align:center;font-size:2rem;margin:14px 0 8px}.auth-card>p{text-align:center;color:#7a7080;margin:0 0 24px}
.auth-form{display:grid;gap:18px;margin-top:22px}.auth-form label{display:grid;gap:8px}.auth-form label>span{font-weight:700;color:#342c39;font-size:.9rem}
.auth-form input{width:100%;border:1px solid #ddd4e3;border-radius:14px;background:#fff;padding:14px 15px;font:inherit;outline:none;transition:.2s}
.auth-form input:focus{border-color:#8a69a4;box-shadow:0 0 0 4px rgba(138,105,164,.1)}
.auth-submit{width:100%;justify-content:center;margin-top:4px}.auth-footer{text-align:center;margin-top:22px}.auth-footer a{color:#74508e;font-weight:700}
.auth-alert{display:flex;gap:11px;align-items:flex-start;border-radius:14px;padding:13px 15px;margin:18px 0;font-size:.9rem}.auth-alert .ui-icon{flex:0 0 20px;margin-top:1px}
.auth-alert.error{background:#fff0f0;color:#9a3434;border:1px solid #f0caca}.auth-alert.info{background:linear-gradient(135deg,#f7f1fb,#eef4fb);color:#594865;border:1px solid #ded4e7}.auth-alert.info div{display:grid;gap:5px}.auth-back{margin-top:8px}
.real-account-note{background:linear-gradient(135deg,rgba(235,248,241,.9),rgba(241,247,252,.9));border-color:rgba(72,145,112,.16)}
.empty-state-card{display:grid;place-items:center;text-align:center;min-height:190px}.empty-state-card>.ui-icon{width:34px;height:34px;color:#8d6ba4;margin-bottom:10px}.empty-state-card h3{margin:0 0 5px}.empty-state-card p{max-width:560px;color:#7f7585}
.admin-flash{margin:18px 0;padding:13px 16px;border-radius:12px;font-weight:700}.admin-flash.success{background:#eaf7ef;color:#2e7550;border:1px solid #cde8d7}.admin-flash.error{background:#fff0f0;color:#9a3434;border:1px solid #efc9c9}
.real-admin-banner{background:linear-gradient(90deg,#ecf7f0,#f1f4fb)!important;color:#456a57!important}.migration-ok{display:flex;align-items:center;gap:8px;margin-top:16px;padding:12px 14px;border-radius:12px;background:#eaf7ef;color:#34714f}.migration-ok .ui-icon{width:18px;height:18px}
.admin-mini-stats{display:grid;gap:10px}.admin-mini-stats span{display:flex;justify-content:space-between;gap:20px;padding:11px 12px;border-radius:10px;background:#f8f6fa}.admin-mini-stats b{color:#795b91}
.migration-callout{margin-bottom:18px;background:linear-gradient(135deg,#fff,#f5eff9)}.migration-callout p{max-width:820px;color:#746a79}
.admin-actions{white-space:nowrap}.admin-actions form{display:inline-flex;margin:0 2px}.admin-actions form button{border:0;background:transparent;cursor:pointer;padding:7px;border-radius:8px;color:#6e6173}.admin-actions form button:hover{background:#f0eaf4;color:#64427d}.admin-actions form button.danger:hover{background:#fff0f0;color:#b43b3b}
.admin-table-toolbar .secondary-btn{min-height:40px;padding:9px 16px}
@media(max-width:700px){.auth-page{padding:42px 14px 70px}.auth-card{padding:25px 20px;border-radius:22px}.auth-card h1{font-size:1.65rem}}

/* ===== Stage 7.1: interaction cursor + larger admin + user pagination ===== */
a[href],
button:not(:disabled),
select:not(:disabled),
summary,
[role="button"],
input[type="button"]:not(:disabled),
input[type="submit"]:not(:disabled),
input[type="reset"]:not(:disabled),
input[type="checkbox"]:not(:disabled),
input[type="radio"]:not(:disabled),
input[type="file"]:not(:disabled),
label[for] { cursor:pointer; }
button:disabled,
select:disabled,
input:disabled { cursor:not-allowed; }

/* Super-admin is intentionally roomier than the public UI. */
.admin-app { grid-template-columns:250px minmax(0,1fr); }
.admin-sidebar { padding:20px 15px; }
.admin-brand img { width:100px; }
.admin-brand span { font-size:10px; }
.admin-sidebar nav a, .admin-site-link { gap:11px; padding:12px 12px; font-size:14px; }
.admin-sidebar .ui-icon { width:18px; height:18px; }
.admin-topbar { height:78px; padding:0 30px; }
.admin-kicker { font-size:10px; }
.admin-topbar strong { font-size:18px; }
.admin-user { font-size:13px; }
.admin-logout { font-size:11px; }
.admin-demo-banner { margin:18px 26px 0; padding:12px 14px; font-size:13px; }
.admin-page-heading { padding:25px 26px 16px; }
.admin-page-heading h1 { font-size:29px; }
.admin-page-heading p { font-size:13px; }
.admin-primary { min-height:42px; padding:0 15px; font-size:13px; }
.admin-stat-grid { gap:14px; padding:0 26px; }
.admin-stat-grid article { min-height:94px; padding:16px; }
.admin-stat-grid article > span { width:40px; height:40px; }
.admin-stat-grid .ui-icon { width:20px; height:20px; }
.admin-stat-grid strong { font-size:22px; }
.admin-stat-grid small { font-size:11px; }
.admin-two-col { gap:16px; padding:16px 26px 30px; }
.admin-card > h2 { font-size:17px; }
.admin-card-heading { padding:17px 19px; }
.admin-card-heading h2 { font-size:16px; }
.admin-card-heading a { font-size:12px; }
.admin-mini-stats span { font-size:13px; }
.admin-setting-row { padding:16px 19px; }
.admin-setting-row strong { font-size:13px; }
.admin-setting-row span { font-size:11px; }
.admin-table-toolbar { padding:15px 17px; }
.admin-table-toolbar label { width:min(430px,100%); height:42px; }
.admin-table-toolbar input { font-size:13px; }
.admin-table-toolbar select { height:42px; font-size:12px; }
.admin-table-toolbar .secondary-btn { min-height:42px; font-size:12px; }
.admin-toolbar-controls { display:flex; align-items:center; gap:9px; margin-left:auto; }
.admin-results-meta { display:flex; align-items:center; gap:9px; padding:10px 17px; color:#716975; border-bottom:1px solid rgba(82,67,89,.07); background:#fcfbfd; font-size:12px; }
.admin-results-meta strong { color:#352d39; font-size:14px; }
.admin-results-meta span { margin-left:auto; color:#8b828f; }
.admin-table th, .admin-table td { padding:13px 15px; font-size:12px; }
.admin-table th { font-size:10px; }
.admin-table td:nth-child(2) small { font-size:10px; }
.admin-actions button { width:34px; height:34px; }
.admin-actions .ui-icon { width:15px; height:15px; }
.admin-pagination { display:flex; align-items:center; justify-content:center; gap:6px; padding:16px 18px 19px; border-top:1px solid rgba(82,67,89,.06); background:#fff; }
.admin-pagination a, .admin-pagination .page-gap { min-width:36px; height:36px; display:grid; place-items:center; border:1px solid rgba(95,76,103,.12); border-radius:9px; color:#665c6b; background:#fff; font-size:12px; font-weight:700; text-decoration:none; }
.admin-pagination a:hover { color:#fff; border-color:transparent; background:linear-gradient(105deg,#765b82,#8296a5); }
.admin-pagination a.active { color:#fff; border-color:transparent; background:linear-gradient(105deg,#72547e,#8a6a91 55%,#728b9d); box-shadow:0 7px 18px rgba(91,65,103,.16); }
.admin-pagination .page-gap { border-color:transparent; background:transparent; }
.admin-pagination a.disabled { opacity:.35; pointer-events:none; }

@media (max-width:980px) {
    .admin-app { grid-template-columns:82px minmax(0,1fr); }
    .admin-toolbar-controls { margin-left:0; flex-wrap:wrap; }
}
@media (max-width:640px) {
    .admin-table-toolbar { gap:10px; }
    .admin-toolbar-controls { width:100%; }
    .admin-toolbar-controls select, .admin-toolbar-controls .secondary-btn { flex:1 1 140px; }
    .admin-results-meta { align-items:flex-start; flex-direction:column; }
    .admin-results-meta span { margin-left:0; }
    .admin-pagination { justify-content:flex-start; overflow-x:auto; }
}

/* Stage 8 - real listings */
.status-pill.expired { color:#6f6372; background:#eee9ef; }
.real-data-note { border-color:rgba(104,86,118,.16); background:linear-gradient(100deg,rgba(241,234,244,.86),rgba(228,237,245,.82)); }
.account-listing-stack { display:grid; gap:12px; }
.account-section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.account-section-heading h3 { margin:0; }
.account-section-heading a { color:#755781; font-weight:700; text-decoration:none; }
.account-real-listing { display:grid; grid-template-columns:118px minmax(0,1fr) auto; align-items:center; gap:16px; padding:12px; border:1px solid rgba(67,51,75,.09); border-radius:18px; background:linear-gradient(135deg,#fff,rgba(247,244,248,.88)); }
.account-real-listing > img { width:118px; height:78px; object-fit:cover; border-radius:13px; background:#ece8ef; }
.account-real-listing > div:not(.account-real-listing-actions) { display:grid; gap:5px; min-width:0; }
.account-real-listing strong { line-height:1.25; }
.account-real-listing small { color:#837887; }
.account-real-listing > a,.account-real-listing-actions a,.account-real-listing-actions button { display:inline-flex; align-items:center; gap:7px; border:0; background:none; color:#6f5478; font:inherit; font-weight:700; text-decoration:none; cursor:pointer; padding:7px 9px; border-radius:10px; }
.account-real-listing > a:hover,.account-real-listing-actions a:hover,.account-real-listing-actions button:hover { background:#f0eaf2; }
.account-real-listing-actions { display:flex; flex-direction:column; align-items:flex-end; gap:4px; }
.admin-icon-link { display:inline-grid; place-items:center; width:36px; height:36px; border-radius:10px; color:#6f5478; text-decoration:none; background:#f4eff5; }
.admin-icon-link:hover { background:#e9deec; }
@media (max-width:760px) {
  .account-real-listing { grid-template-columns:86px minmax(0,1fr); }
  .account-real-listing > img { width:86px; height:70px; }
  .account-real-listing > a,.account-real-listing-actions { grid-column:1/-1; justify-self:stretch; }
  .account-real-listing-actions { flex-direction:row; align-items:center; }
}

/* Stage 8: legacy listing migration states */
.expired-listing-notice{display:flex;gap:14px;align-items:flex-start;margin:0 0 20px;padding:16px 18px;border:1px solid rgba(183,126,59,.22);border-radius:16px;background:linear-gradient(135deg,rgba(255,248,235,.96),rgba(247,240,246,.9));box-shadow:0 12px 32px rgba(50,39,53,.06)}
.expired-listing-notice>.ui-icon{width:23px;height:23px;flex:0 0 23px;color:#a46f35;margin-top:1px}
.expired-listing-notice div{display:grid;gap:3px}.expired-listing-notice strong{font-size:15px;color:#5c452e}.expired-listing-notice span{font-size:13px;line-height:1.45;color:#74675d}


/* Stage 9: verified/legacy contact methods */
.contact-methods-section{margin-top:20px}.contact-method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.contact-method-card{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center;padding:16px;border:1px solid rgba(92,66,112,.12);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(248,246,250,.9));box-shadow:0 10px 26px rgba(35,24,41,.05)}.contact-method-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,rgba(139,91,165,.14),rgba(117,149,185,.13));color:#755080}.contact-method-icon .ui-icon{width:19px;height:19px}.contact-method-card div{min-width:0}.contact-method-card strong,.contact-method-card span{display:block}.contact-method-card div>span{margin-top:3px;color:#6f6676;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-status{grid-column:1/-1;justify-self:start;font-style:normal;font-size:12px;font-weight:700;padding:5px 9px;border-radius:999px}.contact-status.verified{color:#15704d;background:#e8f7f0}.contact-status.legacy{color:#785b2b;background:#fff5db}.contact-status.empty{color:#746b79;background:#f0edf2}.contact-method-hint{margin:14px 2px 0;color:#746b79;font-size:13px;line-height:1.55}.contact-actions:has(.secondary-btn:only-child){grid-template-columns:1fr}
@media(max-width:820px){.contact-method-grid{grid-template-columns:1fr}}
.contact-actions.secondary-one .secondary-btn{grid-column:1/-1}

/* Stage 10: privacy-first public contact reveal. */
.contact-phone--masked {
    color: #695e70;
    letter-spacing: .025em;
}
.contact-phone--revealed {
    color: var(--purple-dark);
}
.contact-reveal-btn {
    position: relative;
}
.contact-reveal-btn.is-loading {
    pointer-events: none;
    opacity: .78;
}
.contact-reveal-btn.is-loading::after {
    content: '';
    width: 14px;
    height: 14px;
    margin-left: 4px;
    border: 2px solid rgba(255,255,255,.45);
    border-top-color: #fff;
    border-radius: 50%;
    animation: avo-contact-spin .7s linear infinite;
}
@keyframes avo-contact-spin { to { transform: rotate(360deg); } }

/* Stage 11: property polish, readable long values and promotion sidebar. */
.contact-line--seller strong {
    text-transform: capitalize;
}

.feature-cards strong {
    max-width: 100%;
    line-height: 1.18;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: auto;
}
.feature-cards > div:only-child {
    grid-column: span 2;
    min-width: 0;
}
.feature-cards > div:only-child strong {
    font-size: 17px;
}

.property-tools-box {
    gap: 14px;
    padding: 18px;
}
.property-tools-brand {
    display: grid;
    gap: 3px;
}
.property-tools-brand > strong {
    font-size: 18px;
}
.property-tools-stat {
    display: grid;
    grid-template-columns: 20px 1fr auto;
    gap: 8px;
    align-items: center;
    padding: 11px 12px;
    border: 1px solid rgba(92,72,102,.09);
    border-radius: 12px;
    background: rgba(255,255,255,.72);
}
.property-tools-stat .ui-icon {
    width: 17px;
    height: 17px;
    color: #81668d;
}
.property-tools-stat span {
    font-size: 12px;
    color: #7b7280;
}
.property-tools-stat strong {
    color: #352d39;
    font-size: 13px;
}
.property-promotion-box {
    display: grid;
    gap: 10px;
    padding-top: 13px;
    border-top: 1px solid rgba(99,79,108,.10);
}
.property-promotion-title {
    display: flex;
    align-items: center;
    gap: 8px;
}
.property-promotion-title .ui-icon {
    width: 17px;
    height: 17px;
    color: #815f8d;
}
.property-promotion-title strong {
    color: #45384a;
    font-size: 13px;
}
.property-promotion-badges {
    display: grid;
    gap: 8px;
}
.promotion-badge {
    display: grid;
    gap: 3px;
    padding: 11px 12px;
    border: 1px solid rgba(110,83,121,.10);
    border-radius: 12px;
    background: linear-gradient(135deg,#faf5fb,#f2f5f8);
}
.promotion-badge > span {
    color: #4e3e54;
    font-size: 13px;
    font-weight: 700;
}
.promotion-badge > small {
    color: #817686;
    font-size: 10px;
}
.promotion-badge--premium {
    background: linear-gradient(135deg,#fff3e8,#f6e9f5 54%,#edf3f7);
}
.promotion-badge--vip {
    background: linear-gradient(135deg,#f8ebff,#efe9fa 55%,#e9f1f7);
}
.promotion-badge--highlight {
    background: linear-gradient(135deg,#fff7df,#f7edf1 55%,#edf3f6);
}
.property-promotion-empty {
    padding: 10px 12px;
    border-radius: 11px;
    color: #827986;
    background: rgba(255,255,255,.68);
    font-size: 11px;
}
.property-promote-owner {
    width: 100%;
    justify-content: center;
    min-height: 42px;
    margin-top: 2px;
}
.property-promote-owner .ui-icon {
    width: 16px;
    height: 16px;
}

@media (max-width: 640px) {
    .feature-cards > div:only-child {
        grid-column: 1 / -1;
    }
}

/* Stage 12: real companies + wallet history */
.company-logo-image{
    display:block;
    object-fit:contain;
    background:#fff;
    border:1px solid rgba(96,79,104,.10);
    box-shadow:0 12px 28px rgba(42,31,48,.07);
}
.company-card .company-logo-image{
    width:64px;
    height:64px;
    padding:7px;
    border-radius:18px;
}
.company-profile-head .company-logo-image{
    width:88px;
    height:88px;
    padding:9px;
    border-radius:24px;
}
.company-logo-account{
    width:72px;
    height:72px;
    flex:0 0 72px;
    padding:7px;
    border-radius:18px;
    object-fit:contain;
    background:#fff;
    border:1px solid rgba(96,79,104,.10);
}
.company-description{
    color:var(--muted);
    font-size:13px;
    line-height:1.72;
    white-space:normal;
}
.company-site-link{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--purple-dark);
    font-weight:760;
}
.company-site-link .ui-icon{width:14px;height:14px}
.companies-empty-state{
    min-height:230px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:8px;
    padding:34px;
    text-align:center;
    border:1px solid rgba(96,79,104,.10);
    border-radius:20px;
    background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(249,247,251,.94));
}
.companies-empty-state.compact{min-height:130px;margin-top:16px}
.companies-empty-state > .ui-icon{width:34px;height:34px;color:#8f729a}
.companies-empty-state h2{margin:4px 0 0;font-size:22px}
.companies-empty-state p{max-width:640px;margin:0;color:var(--muted);line-height:1.6}
.company-inactive-note{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-top:10px;
    color:#8b6f70;
    font-size:11px;
    line-height:1.45;
}
.company-inactive-note .ui-icon{width:14px;height:14px;flex:0 0 auto}
.status-pill.inactive{color:#7d6d71;background:#f3edef}
.status-pill.blocked{color:#8d4d4d;background:#f8e7e7}
.wallet-mini-list{display:grid;gap:0}
.wallet-mini-list > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:13px 2px;
    border-bottom:1px solid rgba(91,75,99,.08);
}
.wallet-mini-list > div:last-child{border-bottom:0}
.wallet-mini-list span{color:#675f6a;font-size:12px}
.wallet-mini-list strong,.wallet-amount{font-weight:880;white-space:nowrap}
.wallet-mini-list .credit,.wallet-amount.credit{color:#3e8a64}
.wallet-mini-list .debit,.wallet-amount.debit{color:#a25f62}
.account-table td strong + small{display:block;margin-top:4px;color:#928a96;font-size:10px}
.admin-table .wallet-amount{font-size:12px}
.admin-table td > small{display:block;margin-top:3px;color:#928a96;font-size:10px}

@media (max-width:760px){
    .company-profile-head{align-items:flex-start;flex-wrap:wrap}
    .company-contact-actions{width:100%;margin-left:0}
    .company-contact-actions a{flex:1;justify-content:center}
    .wallet-mini-list > div{align-items:flex-start;flex-direction:column;gap:5px}
}

/* Stage 13: searchable select */
.avo-search-select-native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.avo-search-select { position: relative; width: 100%; }
.avo-search-select-input {
    width: 100%;
    height: 46px;
    padding: 0 38px 0 12px;
    border: 1px solid #d8d0dc;
    border-radius: 10px;
    background: rgba(255,255,255,.96);
    color: var(--text);
    outline: none;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}
.search-grid .avo-search-select-input { height: 52px; }
.field-block .avo-search-select-input { height: 48px; }
.avo-search-select-input:focus {
    border-color: #9c78b0;
    box-shadow: 0 0 0 3px rgba(116,73,137,.10), 0 8px 24px rgba(47,36,52,.06);
}
.avo-search-select-chevron {
    position: absolute;
    right: 13px;
    top: 50%;
    transform: translateY(-52%);
    font-size: 18px;
    color: #746879;
    pointer-events: auto;
    cursor: pointer;
}
.avo-search-select-menu {
    position: absolute;
    z-index: 80;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    border: 1px solid rgba(102,75,112,.15);
    border-radius: 12px;
    background: rgba(255,255,255,.99);
    box-shadow: 0 18px 45px rgba(42,30,48,.16);
    overflow: hidden;
}
.avo-search-select-list { max-height: 330px; overflow: auto; padding: 6px; }
.avo-search-select-group {
    padding: 9px 10px 5px;
    color: #8b7d91;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.avo-search-select-option {
    display: block;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #342d37;
    text-align: left;
    cursor: pointer;
}
.avo-search-select-option:hover,
.avo-search-select-option.active { background: linear-gradient(90deg, rgba(144,94,163,.12), rgba(104,137,168,.10)); }
.avo-search-select-option.selected { color: #704183; font-weight: 700; }
.avo-search-select-empty { padding: 18px 12px; color: #877c8a; text-align: center; font-size: 13px; }

/* Stage 13: promotion purchase modal */
.modal-open { overflow: hidden; }
.promotion-modal { position: fixed; inset: 0; z-index: 250; display: grid; place-items: center; padding: 22px; }
.promotion-modal[hidden] { display: none !important; }
.promotion-modal-backdrop { position: absolute; inset: 0; background: rgba(25,20,29,.56); backdrop-filter: blur(5px); }
.promotion-modal-card {
    position: relative;
    width: min(620px, 100%);
    max-height: min(760px, calc(100vh - 44px));
    overflow: auto;
    padding: 26px;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 24px;
    background: linear-gradient(145deg, rgba(255,255,255,.99), rgba(248,244,249,.98));
    box-shadow: 0 30px 90px rgba(23,18,27,.28);
}
.promotion-modal-close {
    position: absolute; right: 16px; top: 14px;
    width: 36px; height: 36px; border: 0; border-radius: 50%;
    background: rgba(86,64,94,.07); color: #594860; font-size: 25px; cursor: pointer;
}
.promotion-modal-head { display: flex; gap: 14px; align-items: flex-start; padding-right: 34px; }
.promotion-modal-icon { display: grid; place-items: center; width: 46px; height: 46px; flex: 0 0 46px; border-radius: 14px; background: linear-gradient(135deg,#8a4b9c,#7898b6); color:#fff; }
.promotion-modal-icon .ui-icon { width: 23px; height: 23px; }
.promotion-modal-head h2 { margin: 1px 0 5px; font-size: 24px; }
.promotion-modal-head p { margin: 0; color: #776d7a; font-size: 13px; line-height: 1.55; }
.promotion-modal-balance { display: flex; justify-content: space-between; align-items: center; margin: 20px 0 14px; padding: 13px 15px; border-radius: 13px; background: linear-gradient(90deg,rgba(139,82,157,.09),rgba(111,148,178,.09)); }
.promotion-modal-balance span { color:#736878; font-size:12px; font-weight:700; }
.promotion-modal-balance strong { font-size:18px; }
.promotion-service-list { display: grid; gap: 10px; }
.promotion-service-card { display:flex; gap:16px; align-items:center; justify-content:space-between; padding:14px 15px; border:1px solid rgba(92,73,99,.10); border-radius:14px; background:#fff; }
.promotion-service-card > div { display:grid; gap:3px; min-width:0; }
.promotion-service-card strong { font-size:15px; }
.promotion-service-card span { color:#756b79; font-size:12px; }
.promotion-service-card small { color:#7e528e; font-size:11px; font-weight:700; }
.promotion-service-card--premium { box-shadow: inset 3px 0 0 #e0836c; }
.promotion-service-card--vip { box-shadow: inset 3px 0 0 #c665c8; }
.promotion-service-card--highlight { box-shadow: inset 3px 0 0 #e4ab46; }
.promotion-service-card--raise { box-shadow: inset 3px 0 0 #7b9eb9; }
.promotion-modal-loading { padding:28px; text-align:center; font-size:24px; color:#8c6d98; }
.promotion-pending-note { margin:14px 2px 0; color:#8b808e; font-size:11px; line-height:1.5; }

@media (max-width: 620px) {
    .promotion-modal { padding: 10px; align-items: end; }
    .promotion-modal-card { width: 100%; max-height: 88vh; border-radius: 22px 22px 12px 12px; padding: 21px 16px 18px; }
    .promotion-service-card { align-items:flex-start; flex-direction:column; }
    .promotion-service-card .primary-btn { width:100%; }
    .avo-search-select-list { max-height: 260px; }
}

/* Stage 13.1: location autocomplete stacking and multilingual search */
.search-card {
    position: relative;
    z-index: 40;
    overflow: visible;
}
.search-grid {
    position: relative;
    z-index: 2;
}
.search-grid > label {
    position: relative;
    z-index: 1;
}
.search-grid > label:focus-within {
    z-index: 700;
}
.category-pills {
    position: relative;
    z-index: 2;
}
.avo-search-select {
    position: relative;
    z-index: 1;
}
.avo-search-select:focus-within {
    z-index: 800;
}
.avo-search-select-menu {
    z-index: 9000;
}
.catalog-filters {
    z-index: 60;
    overflow: visible;
}
.catalog-filters .filter-field,
.form-card .field-block {
    position: relative;
}
.catalog-filters .filter-field:focus-within,
.form-card .field-block:focus-within {
    z-index: 800;
}

/* Stage 14: modern controls, custom dropdowns and price range */
:root {
    --control-bg: linear-gradient(180deg, rgba(255,255,255,.99), rgba(249,247,251,.98));
    --control-border: #d9d1dd;
    --control-border-hover: #bdaec5;
    --control-focus: 0 0 0 4px rgba(126,89,142,.10), 0 10px 26px rgba(42,31,47,.07);
}

/* Keep the user-approved red favorite accent. */
.heart.active,
.favorite-action.active {
    color: #d72f2f;
}
.heart.active {
    background: linear-gradient(145deg,#fff,#fff4f4);
    box-shadow: 0 7px 20px rgba(190,43,43,.13);
}
.heart:hover { color: #d72f2f; }

/* Native selects stay available to forms and validation, but no longer control the UI. */
.avo-select-native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.avo-select {
    position: relative;
    width: 100%;
    z-index: 1;
}
.avo-select.is-open { z-index: 9200; }
.avo-select-trigger {
    width: 100%;
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 13px 0 14px;
    border: 1px solid var(--control-border);
    border-radius: 13px;
    background: var(--control-bg);
    color: #302a33;
    text-align: left;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 4px 14px rgba(42,32,46,.025);
    cursor: pointer;
    transition: border-color .17s ease, box-shadow .17s ease, transform .17s ease, background .17s ease;
}
.avo-select-trigger:hover {
    border-color: var(--control-border-hover);
    background: linear-gradient(180deg,#fff,#f8f5f9);
}
.avo-select.is-open .avo-select-trigger,
.avo-select-trigger:focus-visible {
    border-color: #9b7aa8;
    box-shadow: var(--control-focus);
    outline: none;
}
.avo-select-trigger.is-placeholder .avo-select-value { color: #8e8591; }
.avo-select-value {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}
.avo-select-chevron {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: #77687d;
    background: rgba(104,79,112,.055);
    transition: transform .18s ease, background .18s ease;
}
.avo-select-chevron svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.avo-select.is-open .avo-select-chevron { transform: rotate(180deg); background: rgba(124,86,139,.10); }
.avo-select-menu {
    position: absolute;
    z-index: 9300;
    left: 0;
    right: 0;
    top: calc(100% + 7px);
    max-height: 330px;
    overflow: auto;
    padding: 7px;
    border: 1px solid rgba(95,73,103,.14);
    border-radius: 15px;
    background: rgba(255,255,255,.985);
    backdrop-filter: blur(18px);
    box-shadow: 0 24px 60px rgba(35,25,40,.18), inset 0 1px 0 rgba(255,255,255,.9);
}
.avo-select-option {
    width: 100%;
    min-height: 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 10px 8px 12px;
    border: 0;
    border-radius: 10px;
    color: #352e39;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: background .14s ease, color .14s ease;
}
.avo-select-option:hover,
.avo-select-option.active {
    background: linear-gradient(90deg, rgba(132,87,151,.11), rgba(104,139,170,.09));
}
.avo-select-option.selected { color: #714680; font-weight: 700; }
.avo-select-option:disabled { opacity: .42; cursor: default; }
.avo-select-check { opacity: 0; color: #865493; font-weight: 700; }
.avo-select-option.selected .avo-select-check { opacity: 1; }

/* Context-aware sizing. */
.search-grid .avo-select-trigger { min-height: 52px; border-radius: 13px; }
.sort-select .avo-select { min-width: 160px; }
.sort-select .avo-select-trigger { min-height: 40px; padding-left: 12px; border-radius: 11px; font-size: 12px; }
.field-block .avo-select-trigger { min-height: 48px; }
.catalog-filters .avo-select-trigger { min-height: 46px; }

/* Searchable location controls now visually match all other controls. */
.avo-search-select.is-open { z-index: 9400; }
.avo-search-select-input {
    border-radius: 13px;
    border-color: var(--control-border);
    background: var(--control-bg);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 4px 14px rgba(42,32,46,.025);
    font-weight: 600;
    transition: border-color .17s ease, box-shadow .17s ease, background .17s ease;
}
.avo-search-select-input:hover { border-color: var(--control-border-hover); }
.avo-search-select-input:focus {
    border-color: #9b7aa8;
    background: #fff;
    box-shadow: var(--control-focus);
}
.avo-search-select-menu {
    border-radius: 15px;
    border-color: rgba(95,73,103,.14);
    box-shadow: 0 24px 60px rgba(35,25,40,.18), inset 0 1px 0 rgba(255,255,255,.9);
}
.avo-search-select-option { min-height: 40px; border-radius: 10px; padding: 9px 11px; }

/* Text inputs and textareas: cleaner, larger, consistent. */
.field-block input:not([type="file"]):not([type="checkbox"]):not([type="radio"]),
.field-block textarea,
.description-panels textarea,
.auth-form input,
.company-search input,
.admin-search input {
    border-radius: 13px;
    border-color: var(--control-border);
    background: var(--control-bg);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
    transition: border-color .17s ease, box-shadow .17s ease, background .17s ease;
}
.field-block input:not([type="file"]):not([type="checkbox"]):not([type="radio"]):focus,
.field-block textarea:focus,
.description-panels textarea:focus,
.auth-form input:focus,
.company-search input:focus,
.admin-search input:focus {
    border-color: #9b7aa8;
    background: #fff;
    box-shadow: var(--control-focus);
    outline: none;
}

/* Modern dual price selector. */
.price-range {
    position: relative;
    width: 100%;
    z-index: 1;
}
.price-range.is-open { z-index: 9500; }
.price-range-trigger {
    width: 100%;
    min-height: 52px;
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 0 12px;
    border: 1px solid var(--control-border);
    border-radius: 13px;
    background: var(--control-bg);
    color: #332d36;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 4px 14px rgba(42,32,46,.025);
    transition: border-color .17s ease, box-shadow .17s ease, background .17s ease;
}
.price-range-trigger:hover { border-color: var(--control-border-hover); background: linear-gradient(180deg,#fff,#f8f5f9); }
.price-range.is-open .price-range-trigger { border-color: #9b7aa8; background: #fff; box-shadow: var(--control-focus); }
.price-range-trigger-icon {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: #6d4a78;
    background: linear-gradient(145deg,#f1e7f3,#edf2f6);
    font-weight: 700;
}
.price-range-trigger [data-price-range-label] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
    font-weight: 650;
}
.price-range-trigger-chevron { color: #746879; font-size: 18px; transition: transform .18s ease; }
.price-range.is-open .price-range-trigger-chevron { transform: rotate(180deg); }
.price-range-popover {
    position: absolute;
    z-index: 9600;
    top: calc(100% + 8px);
    left: 0;
    width: min(360px, calc(100vw - 28px));
    padding: 17px;
    border: 1px solid rgba(96,73,104,.14);
    border-radius: 18px;
    background: rgba(255,255,255,.99);
    backdrop-filter: blur(18px);
    box-shadow: 0 28px 70px rgba(34,25,39,.21), inset 0 1px 0 rgba(255,255,255,.95);
}
.search-grid label:nth-child(3) .price-range-popover { right: 0; left: auto; }
.price-range-popover-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 15px; }
.price-range-popover-head strong { font-size: 15px; }
.price-range-popover-head button {
    border: 0;
    padding: 5px 7px;
    border-radius: 8px;
    color: #795780;
    background: transparent;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}
.price-range-popover-head button:hover { background: #f5eef6; }
.price-range-values { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-bottom: 18px; }
.price-range-values > div {
    min-width: 0;
    padding: 10px 11px;
    border: 1px solid #ebe4ed;
    border-radius: 12px;
    background: linear-gradient(145deg,#fff,#f8f5f9);
}
.price-range-values span { display: block; margin-bottom: 3px; color: #8b818f; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.price-range-values strong { display: block; overflow: hidden; color: #332b36; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.price-range-slider { position: relative; height: 34px; margin: 0 3px 13px; }
.price-range-track {
    position: absolute;
    z-index: 1;
    left: 0;
    right: 0;
    top: 15px;
    height: 6px;
    border-radius: 999px;
    background: #ece7ee;
    overflow: hidden;
}
.price-range-track span {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    border-radius: inherit;
    background: linear-gradient(90deg,#8c5a9a,#7d8fa7);
}
.price-range-slider input[type="range"] {
    position: absolute;
    z-index: 2;
    inset: 0;
    width: 100%;
    height: 34px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    appearance: none;
    -webkit-appearance: none;
    pointer-events: none;
    outline: none;
}
.price-range-slider input[type="range"]::-webkit-slider-runnable-track { height: 6px; background: transparent; }
.price-range-slider input[type="range"]::-webkit-slider-thumb {
    width: 20px;
    height: 20px;
    margin-top: -7px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: linear-gradient(145deg,#8c5a9a,#738da6);
    box-shadow: 0 3px 10px rgba(67,47,75,.28);
    appearance: none;
    -webkit-appearance: none;
    pointer-events: auto;
    cursor: grab;
}
.price-range-slider input[type="range"]::-webkit-slider-thumb:active { cursor: grabbing; transform: scale(1.06); }
.price-range-slider input[type="range"]::-moz-range-track { height: 6px; background: transparent; }
.price-range-slider input[type="range"]::-moz-range-thumb {
    width: 16px;
    height: 16px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #815b90;
    box-shadow: 0 3px 10px rgba(67,47,75,.28);
    pointer-events: auto;
    cursor: grab;
}
.price-range-presets { display: flex; flex-wrap: wrap; gap: 7px; }
.price-range-presets button {
    min-height: 31px;
    padding: 0 10px;
    border: 1px solid #e7dfe9;
    border-radius: 999px;
    background: linear-gradient(145deg,#fff,#f7f3f8);
    color: #67566d;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease, transform .15s ease;
}
.price-range-presets button:hover { border-color: #cdbbd2; color: #71477f; transform: translateY(-1px); }
.price-range--filter .price-range-trigger { min-height: 46px; }
.price-range--filter .price-range-popover { left: 0; right: auto; width: 330px; }

/* Avoid clipping custom popovers. */
.search-card,
.search-grid,
.catalog-shell,
.catalog-filters,
.catalog-toolbar,
.form-card,
.form-grid-2,
.dynamic-fields { overflow: visible; }
.search-grid > label,
.filter-field,
.sort-select,
.field-block { position: relative; }
.search-grid > label:focus-within,
.search-grid > label:has(.is-open),
.filter-field:focus-within,
.filter-field:has(.is-open),
.sort-select:has(.is-open),
.field-block:has(.is-open) { z-index: 9700; }

@media (max-width: 760px) {
    .price-range-popover,
    .search-grid label:nth-child(3) .price-range-popover,
    .price-range--filter .price-range-popover {
        position: fixed;
        z-index: 9999;
        left: 14px;
        right: 14px;
        top: auto;
        bottom: 16px;
        width: auto;
        border-radius: 22px;
    }
    .price-range-values { grid-template-columns: 1fr 1fr; }
    .avo-select-menu { max-height: 48vh; }
}

/* Checkboxes, radios and file inputs should not fall back to 1990s browser chrome. */
.amenities-grid input[type="checkbox"],
.promotion-option input[type="checkbox"],
.form-card input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    display: grid;
    place-items: center;
    margin: 0;
    border: 1px solid #cfc5d3;
    border-radius: 6px;
    background: linear-gradient(145deg,#fff,#f6f3f7);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
}
.amenities-grid input[type="checkbox"]::after,
.promotion-option input[type="checkbox"]::after,
.form-card input[type="checkbox"]::after {
    content: "";
    width: 8px;
    height: 4px;
    margin-top: -2px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) scale(0);
    transition: transform .14s ease;
}
.amenities-grid input[type="checkbox"]:checked,
.promotion-option input[type="checkbox"]:checked,
.form-card input[type="checkbox"]:checked {
    border-color: transparent;
    background: linear-gradient(145deg,#8b5799,#718ea7);
    box-shadow: 0 4px 12px rgba(92,61,104,.18);
}
.amenities-grid input[type="checkbox"]:checked::after,
.promotion-option input[type="checkbox"]:checked::after,
.form-card input[type="checkbox"]:checked::after { transform: rotate(-45deg) scale(1); }
.amenities-grid input[type="checkbox"]:focus-visible,
.promotion-option input[type="checkbox"]:focus-visible,
.form-card input[type="checkbox"]:focus-visible { outline: 3px solid rgba(126,89,142,.14); outline-offset: 2px; }

.field-block input[type="file"] {
    width: 100%;
    padding: 7px;
    border: 1px dashed #d6cadb;
    border-radius: 14px;
    background: linear-gradient(145deg,#fff,#faf7fb);
    color: #776d7a;
}
.field-block input[type="file"]::file-selector-button {
    min-height: 38px;
    margin-right: 12px;
    padding: 0 14px;
    border: 0;
    border-radius: 10px;
    background: linear-gradient(135deg,#8b5a98,#758fa8);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 6px 14px rgba(92,61,104,.16);
}

/* Stage 14.1: control polish and true popover overflow fix */
/*
 * z-index cannot escape an ancestor with overflow:hidden. The hero used that
 * for its decorative cut, so home dropdowns were physically clipped even at
 * z-index 9600. Let controls overflow and keep decorative layers behind them.
 */
.hero {
    overflow: visible;
    isolation: auto;
}
.hero-overlay {
    z-index: 0;
    pointer-events: none;
}
.hero::after {
    z-index: 0;
    pointer-events: none;
}
.hero-content {
    z-index: 20;
}
.hero:has(.avo-select.is-open),
.hero:has(.avo-search-select.is-open),
.hero:has(.price-range.is-open) {
    z-index: 120;
}
.listings-section {
    position: relative;
    z-index: 1;
}
.search-card,
.search-grid,
.search-grid > label,
.price-range,
.avo-select,
.avo-search-select {
    overflow: visible !important;
}
.search-card:has(.is-open),
.search-grid > label:has(.is-open) {
    z-index: 10000;
}

/* One chevron language for every AVO.GE control. No OS glyphs, no mixed arrows. */
.avo-select-chevron,
.avo-search-select-chevron,
.price-range-trigger-chevron {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    display: grid;
    place-items: center;
    color: #776b7c;
    background: transparent;
    border-radius: 0;
    line-height: 1;
    transition: transform .18s ease, color .18s ease;
}
.avo-select-chevron svg,
.avo-search-select-chevron svg,
.price-range-trigger-chevron svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.avo-select.is-open .avo-select-chevron,
.avo-search-select.is-open .avo-search-select-chevron,
.price-range.is-open .price-range-trigger-chevron {
    transform: rotate(180deg);
    color: #785388;
    background: transparent;
}
.avo-search-select-chevron {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    cursor: pointer;
}
.avo-search-select.is-open .avo-search-select-chevron {
    transform: translateY(-50%) rotate(180deg);
}

/* Controls now share the same proportions and visual rhythm. */
.avo-select-trigger,
.avo-search-select-input,
.price-range-trigger {
    border-color: #d8d0dc;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 5px 16px rgba(38,28,43,.035);
}
.avo-select-trigger,
.price-range-trigger {
    padding-right: 14px;
}
.avo-search-select-input {
    padding-right: 44px;
}
.search-grid .avo-select-trigger,
.search-grid .avo-search-select-input,
.search-grid .price-range-trigger {
    height: 52px;
    min-height: 52px;
}
.catalog-filters .avo-select-trigger,
.catalog-filters .avo-search-select-input,
.catalog-filters .price-range-trigger {
    height: 46px;
    min-height: 46px;
}
.sort-select .avo-select-trigger {
    height: 40px;
    min-height: 40px;
}

/* Price gets a real UI icon instead of a font-dependent dollar glyph. */
.price-range-trigger-icon {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: #765284;
    background: linear-gradient(145deg,#f2e9f4,#edf2f6);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
    font-size: 0;
}
.price-range-trigger-icon .ui-icon {
    width: 17px;
    height: 17px;
    stroke-width: 1.75;
}
.price-range-trigger [data-price-range-label] {
    margin: 0;
    color: #3b343d;
    font-size: 13px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
}

/* Popovers need to sit above both the hero cut and the next white section. */
.avo-select-menu,
.avo-search-select-menu,
.price-range-popover {
    z-index: 20000;
}
.price-range-popover {
    overflow: visible;
}

/* Cleaner dropdown internals. */
.avo-select-menu,
.avo-search-select-menu {
    border: 1px solid rgba(92,70,101,.14);
    background: rgba(255,255,255,.995);
    box-shadow: 0 24px 64px rgba(32,23,37,.20), 0 2px 7px rgba(32,23,37,.05);
}
.avo-select-option,
.avo-search-select-option {
    font-size: 13px;
    line-height: 1.35;
}
.avo-select-check {
    display: grid;
    place-items: center;
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg,#875994,#7893aa);
    font-size: 11px;
    opacity: 0;
}
.avo-select-option.selected .avo-select-check { opacity: 1; }

/* Dual range: handles always sit above the track, with a consistent AVO accent. */
.price-range-slider {
    height: 38px;
    margin-top: 2px;
}
.price-range-track {
    top: 16px;
    height: 5px;
    background: #ece7ee;
    overflow: visible;
}
.price-range-track span {
    box-shadow: 0 2px 8px rgba(111,77,124,.15);
}
.price-range-slider input[type="range"]::-webkit-slider-thumb {
    width: 19px;
    height: 19px;
    border: 3px solid #fff;
    background: #805a90;
    box-shadow: 0 2px 8px rgba(59,37,67,.25);
}
.price-range-slider input[type="range"]::-moz-range-thumb {
    width: 15px;
    height: 15px;
    border: 3px solid #fff;
    background: #805a90;
    box-shadow: 0 2px 8px rgba(59,37,67,.25);
}

/* Hero category pills must never cover an opened control. */
.category-pills { z-index: 3; }
.search-card:has(.is-open) + .category-pills { z-index: 1; }

@media (max-width: 760px) {
    .hero { overflow: hidden; }
    .hero:has(.avo-select.is-open),
    .hero:has(.avo-search-select.is-open),
    .hero:has(.price-range.is-open) { overflow: visible; }
}

/* ===== Stage 15: progressive catalog + constrained sticky property sidebar ===== */
.catalog-results { position: relative; min-width: 0; }
.catalog-grid { transition: opacity .18s ease, transform .18s ease; }
.catalog-is-loading .catalog-grid { opacity: .45; transform: translateY(2px); pointer-events: none; }
.catalog-is-loading .catalog-results::after {
    content: '';
    position: absolute;
    top: 86px;
    left: 50%;
    z-index: 20;
    width: 34px;
    height: 34px;
    margin-left: -17px;
    border: 3px solid rgba(116,84,129,.18);
    border-top-color: #7d5a88;
    border-radius: 50%;
    animation: avo-catalog-spin .7s linear infinite;
}
@keyframes avo-catalog-spin { to { transform: rotate(360deg); } }

.catalog-load-more {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin: 28px 0 8px;
}
.catalog-load-more[hidden] { display: none; }
.catalog-load-progress {
    color: #817786;
    font-size: 12px;
}
.catalog-load-progress strong { color: #4a3b50; }
.catalog-load-more-btn {
    min-width: 230px;
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 24px;
    border: 1px solid rgba(105,78,116,.14);
    border-radius: 15px;
    color: #fff;
    background: var(--accent-gradient);
    box-shadow: 0 12px 28px rgba(79,58,89,.14);
    font-weight: 700;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.catalog-load-more-btn:hover { transform: translateY(-1px); box-shadow: 0 15px 32px rgba(79,58,89,.19); }
.catalog-load-more-btn:disabled { cursor: wait; opacity: .66; transform: none; }
.catalog-load-more-btn .ui-icon { width: 17px; height: 17px; }
.catalog-load-more-btn.is-loading .ui-icon { animation: avo-catalog-spin .7s linear infinite; }

.avo-map-popup small {
    display: inline-flex;
    align-items: center;
    width: max-content;
    padding: 4px 7px;
    border-radius: 7px;
    color: #786f7d;
    background: #f3eef4;
    font-size: 9px;
    font-weight: 700;
}

.property-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    grid-template-areas:
        "gallery aside"
        "content aside";
    gap: 24px 30px;
    align-items: start;
    margin-top: 22px;
}
.property-detail-grid > .property-gallery { grid-area: gallery; min-width: 0; }
.property-detail-grid > .property-main-column { grid-area: content; min-width: 0; }
.property-detail-aside {
    grid-area: aside;
    min-width: 0;
    align-self: stretch;
}
.property-sticky-stack {
    position: sticky;
    top: 18px;
    display: grid;
    gap: 16px;
}
.property-sticky-stack .property-contact-card,
.property-sticky-stack .property-tools-box { width: 100%; }
.property-sticky-stack .sticky-side-box { position: static; }
.property-main-column .property-section:first-child { margin-top: 0; }

@media (max-width: 980px) {
    .property-detail-grid {
        grid-template-columns: 1fr;
        grid-template-areas:
            "gallery"
            "aside"
            "content";
        gap: 18px;
    }
    .property-sticky-stack { position: static; }
    .property-detail-aside { display: block; }
    .property-sticky-stack .property-contact-card { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 24px; }
    .property-sticky-stack .property-price,
    .property-sticky-stack .contact-phone,
    .property-sticky-stack .contact-actions { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .catalog-load-more-btn { width: 100%; min-width: 0; }
    .property-sticky-stack .property-contact-card { display: block; }
}

/* Stage 16: real listing editing + moderation */
.edit-photo-strip{display:flex;gap:10px;overflow-x:auto;padding:4px 0 16px;scrollbar-width:thin}
.edit-photo-strip img{width:112px;height:82px;object-fit:cover;border-radius:14px;border:1px solid rgba(84,58,104,.14);box-shadow:0 8px 20px rgba(51,39,64,.08);flex:0 0 auto}
.account-save-flash{margin:0 0 18px}
.admin-toggle{width:54px;height:30px;border:0;border-radius:999px;background:#ddd7e2;padding:3px;cursor:pointer;transition:.2s ease;display:inline-flex;align-items:center}
.admin-toggle span{width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(34,28,40,.2);transition:.2s ease}
.admin-toggle.on{background:linear-gradient(135deg,#8c5a9d,#8197b8)}
.admin-toggle.on span{transform:translateX(24px)}
.moderation-stat-grid{grid-template-columns:repeat(2,minmax(0,260px));margin-bottom:18px}
.moderation-list{display:grid;gap:12px}
.moderation-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;border:1px solid rgba(92,66,108,.12);border-radius:16px;background:linear-gradient(145deg,#fff,#faf8fb)}
.moderation-item>div:first-child{display:grid;gap:5px;min-width:0}.moderation-item strong{font-size:14px}.moderation-item span{font-size:12px;color:#82788a}
.moderation-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.moderation-actions form{display:flex;gap:8px;align-items:center;margin:0}
.admin-danger-text{border:1px solid rgba(207,74,74,.2);background:#fff3f3;color:#b53636;border-radius:10px;padding:9px 12px;font-weight:700;display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.admin-empty-note{color:#847a8d;margin:0}
.status-pill.draft{background:#f4f1f6;color:#716679}.status-pill.pending{background:#fff3d8;color:#9b6a13}
@media(max-width:900px){.moderation-item{align-items:flex-start;flex-direction:column}.moderation-actions{width:100%}.moderation-stat-grid{grid-template-columns:1fr 1fr}}

/* ========================================================================== 
   Stage 17 - readability, visible VIP, share menu, amenity icons, logo contrast
   ========================================================================== */
body { font-size: 16px; }
.main-nav { font-size: 15px; }
.site-footer p, .footer-links { font-size: 14px; }
.footer-copy { font-size: 13px; }

/* Public listing readability */
.breadcrumbs { font-size: 13px; }
.property-heading-meta { font-size: 14px; line-height: 1.45; }
.property-heading-row h1 { font-size: clamp(32px,3.25vw,46px); }
.property-contact-card { padding: 24px; }
.contact-line { padding: 11px 0; font-size: 13.5px; line-height: 1.4; }
.contact-line > span { font-size: 13px; }
.contact-line strong { font-size: 13.5px; }
.property-price { font-size: 34px; }
.contact-phone { font-size: 21px; }
.primary-btn, .secondary-btn, .icon-action { font-size: 14px; }
.property-section { padding: 29px; }
.property-section h2 { font-size: 24px; }
.feature-cards strong { font-size: 19px; line-height: 1.25; }
.feature-cards small { font-size: 12px; line-height: 1.35; }
.property-table dt, .property-table dd { font-size: 14px; line-height: 1.45; }
.property-amenities > div { font-size: 15px; line-height: 1.35; }
.property-description { font-size: 16.5px; line-height: 1.8; }
.description-warning { font-size: 13.5px; }
.original-description-label { font-size: 12.5px; }
.map-heading-row p { font-size: 13px; }
.sticky-side-box span { font-size: 13px; }
.property-tools-stat span { font-size: 13px; }
.property-tools-stat strong { font-size: 17px; }
.property-promotion-empty { font-size: 13px; }
.promotion-badge small { font-size: 12px; }
.property-promote-owner span,
.sticky-side-box .primary-btn span,
.property-contact-card .primary-btn span { color: #fff !important; font-size: 14px !important; }
.property-promote-owner { color:#fff !important; opacity:1; }

/* Catalog / cards readability */
.listing-body h3 { font-size: 17px; line-height: 1.32; }
.listing-body p { font-size: 14px; line-height: 1.45; }
.listing-location { font-size: 14px; }
.filter-field > span { font-size: 12px; }
.catalog-toolbar > div:first-child { font-size: 14px; }
.view-switch button { font-size: 13px; }
.sort-select { font-size: 12px; }

/* Red favorite gives the interface a useful vivid accent. */
.heart.active,
.favorite-action.active .favorite-symbol { color:#d72f2f !important; }
.heart.active { background:linear-gradient(145deg,#fff,#fef5f2); transform:scale(1.04); }

/* Paid promotion is visible in every card, not only inside the owner's account. */
.listing-card--premium { border-color:#c9a2d3; box-shadow:0 12px 34px rgba(112,72,126,.13); }
.listing-card--vip { border-color:#b58ac4; box-shadow:0 10px 30px rgba(106,72,119,.11); }
.listing-card--highlight { border-color:#d6b36d; background:linear-gradient(180deg,#fffdf7,#fff); }
.listing-card--premium::after,
.listing-card--vip::after,
.listing-card--highlight::after { opacity:.9; }
.listing-promo-tag,
.property-promo-tag {
    position:absolute; z-index:5; left:14px; top:52px; display:inline-flex; align-items:center; gap:6px;
    min-height:30px; padding:0 10px; border-radius:999px; color:#fff; font-size:11px; font-weight:700;
    letter-spacing:.025em; box-shadow:0 7px 20px rgba(36,25,42,.18); backdrop-filter:blur(8px);
}
.listing-promo-tag .ui-icon, .property-promo-tag .ui-icon { width:14px; height:14px; }
.listing-promo-tag--premium, .property-promo-tag--premium { background:linear-gradient(135deg,#7a4a88,#a87092 55%,#718fa9); }
.listing-promo-tag--vip, .property-promo-tag--vip { background:linear-gradient(135deg,#785183,#9b72a5); }
.listing-promo-tag--highlight, .property-promo-tag--highlight { color:#4f3b12; background:linear-gradient(135deg,#f5c75a,#f0d99a); }
.listing-promo-tag--raise, .property-promo-tag--raise { background:linear-gradient(135deg,#5d7086,#7b96ad); }
.property-promo-tag { top:54px; }

/* Share menu replaces the operating system share sheet. */
.share-menu-wrap { position:relative; }
.share-menu {
    position:absolute; z-index:1200; top:calc(100% + 10px); right:0; width:220px; padding:8px;
    border:1px solid #ded7e2; border-radius:16px; background:rgba(255,255,255,.985);
    box-shadow:0 22px 54px rgba(40,29,45,.16); backdrop-filter:blur(14px);
}
.share-menu[hidden] { display:none; }
.share-menu button {
    width:100%; min-height:42px; display:flex; align-items:center; gap:10px; padding:0 12px;
    border:0; border-radius:10px; background:transparent; color:#3f3744; font-size:14px; font-weight:700; text-align:left; cursor:pointer;
}
.share-menu button:hover { color:var(--purple-dark); background:linear-gradient(135deg,#f5edf6,#eef4f8); }
.share-menu .ui-icon { width:17px; height:17px; color:#80628b; }

/* Seller's name opens all public listings of that account. */
.seller-listings-link { display:flex; flex-direction:column; align-items:flex-end; gap:2px; color:var(--text); }
.seller-listings-link:hover { color:var(--purple-dark); }
.seller-listings-link small { color:var(--purple-mid); font-size:11.5px; font-weight:700; }
.catalog-seller-banner {
    display:flex; align-items:center; gap:12px; margin:0 0 16px; padding:13px 15px; border:1px solid #e3dce7;
    border-radius:14px; background:linear-gradient(135deg,#fff,#f7f2f8 58%,#eff5f8); box-shadow:var(--shadow-soft);
}
.catalog-seller-banner > .ui-icon { width:21px; height:21px; color:#7f6089; }
.catalog-seller-banner div { display:flex; flex-direction:column; gap:2px; }
.catalog-seller-banner span { color:var(--muted); font-size:12px; }
.catalog-seller-banner strong { font-size:15px; }
.catalog-seller-banner a { margin-left:auto; color:var(--purple-dark); font-size:13px; font-weight:700; }

/* Individual amenity pictograms. */
.property-amenities { gap:12px 18px; }
.property-amenities > .amenity-item { min-height:48px; padding:5px 7px 5px 0; }
.property-amenities .amenity-icon {
    width:38px !important; height:38px !important; flex:0 0 38px !important; border-radius:12px !important;
    color:#6b5773 !important; background:linear-gradient(145deg,#f1e8f2,#eaf2f6) !important;
}
.property-amenities .amenity-icon .ui-icon { width:21px; height:21px; stroke-width:1.8; }
.amenity-item--air_conditioner .amenity-icon { color:#4d7791 !important; background:linear-gradient(145deg,#edf7fb,#e8f0f7) !important; }
.amenity-item--gas .amenity-icon, .amenity-item--fireplace .amenity-icon { color:#a15b49 !important; background:linear-gradient(145deg,#fff0e9,#f9eee9) !important; }
.amenity-item--hot_water .amenity-icon { color:#4f7796 !important; }
.amenity-item--internet .amenity-icon { color:#5b718e !important; }
.amenity-item--parking .amenity-icon { color:#596981 !important; }
.amenity-choice-icon { width:30px; height:30px; display:grid; place-items:center; flex:0 0 30px; border-radius:9px; background:linear-gradient(145deg,#f0e8f2,#eaf2f6); color:#725a7a; }
.amenity-choice-icon .ui-icon { width:17px; height:17px; }
.amenities-grid label { font-size:14px; min-height:42px; }

/* Company logos sit on a branded gradient, so transparent/white PNG logos stay visible. */
.company-logo-image,
.company-logo-account {
    background:linear-gradient(135deg,#754d84 0%,#8756a9 52%,#6f8eaa 100%) !important;
    border-color:rgba(99,72,111,.18) !important;
}

/* Form readability */
.field-block > label, .field-block > span, .field-block label > span { font-size:13px; }
.field-block small, .field-hint { font-size:12.5px; }
.form-card-heading p { font-size:14px; }
.geo-status { font-size:13px; line-height:1.5; }

@media (max-width: 760px) {
    .property-heading-row h1 { font-size:31px; }
    .property-section { padding:22px 18px; }
    .property-description { font-size:16px; }
    .property-amenities { grid-template-columns:1fr; }
    .share-menu { left:0; right:auto; width:min(260px,calc(100vw - 32px)); }
}

/* Stage 17.1 - readability across account, company and admin surfaces */
.account-user-card strong { font-size:15.5px; }
.account-user-card span { font-size:12.5px; }
.account-nav a { font-size:14px; padding:12px 13px; }
.account-balance-card > span { font-size:12px; }
.account-balance-card a { font-size:13.5px; }
.account-page-heading p { font-size:14px; }
.account-stat-grid article div span { font-size:12.5px; }
.account-listing-main h4 { font-size:15.5px; line-height:1.35; }
.account-listing-main p { font-size:13.5px; }
.account-listing-actions a,
.account-listing-actions button { font-size:12.5px; }
.account-status-tabs button { font-size:12.5px; }
.favorites-account-bridge span { font-size:13.5px; }
.company-account-info p { font-size:13.5px; }
.account-table th, .account-table td { font-size:13.5px; }
.account-table th { font-size:11.5px; }

.company-search input { font-size:14px; }
.company-card > p { font-size:14px; }
.company-meta { font-size:12.5px; }
.company-card-actions .text-link { font-size:12.5px; }
.company-profile-head p { font-size:14px; }
.company-about-card p { font-size:15.5px; }
.company-contact-list { font-size:13.5px; }

.admin-sidebar nav a, .admin-site-link { font-size:13.5px; }
.admin-brand span { font-size:10px; }
.admin-kicker { font-size:10px; }
.admin-topbar strong { font-size:17px; }
.admin-user { font-size:12.5px; }
.admin-demo-banner { font-size:12.5px; }
.admin-page-heading p { font-size:13px; }
.admin-primary { font-size:13.5px; }

@media (min-width: 1200px) {
    .property-page { font-size:16px; }
    .property-sidebar { font-size:15px; }
}
\n\n/* Stage 17.1: stable searchable location control.\n   The entire arrow area is a real 44px hit target and no longer steals focus. */\n.avo-search-select {\n    isolation: isolate;\n}\n.avo-search-select-input {\n    cursor: text;\n    padding-right: 48px !important;\n}\n.avo-search-select-chevron {\n    top: 0 !important;\n    right: 0 !important;\n    width: 44px !important;\n    height: 100% !important;\n    min-height: 100% !important;\n    transform: none !important;\n    border-radius: 0 13px 13px 0 !important;\n    display: grid !important;\n    place-items: center !important;\n    cursor: pointer !important;\n    user-select: none;\n    touch-action: manipulation;\n}\n.avo-search-select-chevron:hover {\n    color: #704884;\n    background: linear-gradient(90deg, rgba(128,83,148,0), rgba(128,83,148,.08));\n}\n.avo-search-select-chevron svg {\n    width: 17px !important;\n    height: 17px !important;\n    transition: transform .18s ease, color .18s ease;\n}\n.avo-search-select.is-open .avo-search-select-chevron {\n    transform: none !important;\n    color: #704884;\n    background: linear-gradient(90deg, rgba(128,83,148,0), rgba(128,83,148,.08));\n}\n.avo-search-select.is-open .avo-search-select-chevron svg {\n    transform: rotate(180deg);\n}\n.avo-search-select:focus-within .avo-search-select-input {\n    border-color: #9b7aa8;\n    background: #fff;\n    box-shadow: var(--control-focus);\n}\n.avo-search-select-menu {\n    margin-top: 2px;\n}\n
/* ===== Stage 18 · reports / anti-spam ===== */
.report-action { color:#6d5a72; }
.report-action:hover { color:#b44949; border-color:rgba(180,73,73,.24); background:rgba(180,73,73,.055); }
.report-action .ui-icon { width:17px; height:17px; }
.report-modal[hidden] { display:none !important; }
.report-modal { position:fixed; inset:0; z-index:100500; display:grid; place-items:center; padding:24px; opacity:0; transition:opacity .16s ease; }
.report-modal.is-open { opacity:1; }
.report-modal-backdrop { position:absolute; inset:0; background:rgba(31,26,34,.46); backdrop-filter:blur(5px); }
.report-modal-card { position:relative; z-index:1; width:min(560px,100%); max-height:min(760px,calc(100vh - 38px)); overflow:auto; padding:28px; border:1px solid rgba(105,78,113,.12); border-radius:26px; background:linear-gradient(145deg,#fff 0%,#fdf9fc 62%,#f6f8fb 100%); box-shadow:0 30px 90px rgba(47,34,53,.24); transform:translateY(10px) scale(.985); transition:transform .16s ease; }
.report-modal.is-open .report-modal-card { transform:none; }
.report-modal-close { position:absolute; top:16px; right:16px; width:38px; height:38px; display:grid; place-items:center; border:0; border-radius:12px; background:#f2edf3; color:#6d5a72; font-size:24px; line-height:1; cursor:pointer; }
.report-modal-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:15px; color:#fff; background:linear-gradient(135deg,#805394,#9a6e9d 55%,#708da8); box-shadow:0 10px 24px rgba(126,82,144,.22); }
.report-modal-icon .ui-icon { width:23px; height:23px; }
.report-modal-card h2 { margin:16px 44px 5px 0; font-size:28px; }
.report-modal-card > p { margin:0 0 20px; color:var(--muted); line-height:1.55; }
.report-reasons { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:0; margin:0 0 18px; border:0; }
.report-reasons legend { grid-column:1/-1; margin-bottom:8px; font-weight:700; }
.report-reasons label { position:relative; display:flex; align-items:center; min-height:48px; padding:10px 13px; border:1px solid #e5dce8; border-radius:14px; background:#fff; cursor:pointer; transition:.16s ease; }
.report-reasons label:hover { border-color:#bda8c3; background:#fdfafd; }
.report-reasons input { position:absolute; opacity:0; pointer-events:none; }
.report-reasons label:has(input:checked) { border-color:#8d669b; background:linear-gradient(135deg,#f4edf6,#eef3f8); box-shadow:0 0 0 3px rgba(128,83,148,.08); }
.report-reasons label:has(input:checked)::after { content:'✓'; margin-left:auto; width:22px; height:22px; display:grid; place-items:center; border-radius:50%; background:#805394; color:#fff; font-size:12px; font-weight:700; }
.report-reasons span { font-weight:700; font-size:14px; }
.report-details { display:grid; gap:8px; margin-bottom:16px; }
.report-details > span { font-weight:700; }
.report-details textarea { width:100%; min-height:108px; resize:vertical; }
.report-submit { width:100%; justify-content:center; min-height:50px; }
.report-status { margin:0 0 14px; padding:12px 14px; border-radius:13px; font-weight:700; line-height:1.45; }
.report-status.success { color:#2e7158; background:#eaf6f0; }
.report-status.error { color:#a34040; background:#fff0f0; }
.report-honeypot { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; }
body.modal-open { overflow:hidden; }

.admin-report-grid { display:grid; gap:12px; }
.admin-report-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:center; padding:15px 17px; border:1px solid rgba(91,70,98,.09); border-radius:16px; background:#fff; }
.admin-report-main { display:grid; gap:5px; min-width:0; }
.admin-report-main strong { font-size:15px; }
.admin-report-main span,.admin-report-main small { color:#827687; }
.admin-report-main .report-reason-pill { width:max-content; padding:5px 9px; border-radius:999px; color:#7e4f58; background:#fff0f1; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.admin-report-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.admin-report-actions form { display:flex; align-items:center; gap:7px; }
.admin-report-actions input[type="text"] { width:190px; min-height:38px; padding:8px 10px; }
.admin-word-form { display:grid; grid-template-columns:minmax(180px,1fr) 150px 150px auto; gap:10px; align-items:end; padding:16px; border-bottom:1px solid rgba(91,70,98,.08); }
.admin-word-form label { display:grid; gap:6px; font-size:12px; font-weight:700; color:#6f6472; }
.admin-word-form input,.admin-word-form select { min-height:42px; }
.admin-word-list { display:grid; }
.admin-word-row { display:grid; grid-template-columns:minmax(0,1fr) 110px 120px auto; gap:12px; align-items:center; padding:12px 16px; border-bottom:1px solid rgba(91,70,98,.07); }
.admin-word-row:last-child { border-bottom:0; }
.admin-word-row strong { font-size:14px; overflow-wrap:anywhere; }
.admin-word-row small { color:#8c8290; }
.admin-word-actions { display:flex; gap:7px; justify-content:flex-end; }
.admin-word-actions form { margin:0; }
.spam-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr); gap:18px; align-items:start; }

@media (max-width:900px) {
    .report-reasons { grid-template-columns:1fr; }
    .admin-report-item,.spam-dashboard-grid { grid-template-columns:1fr; }
    .admin-report-actions { justify-content:flex-start; }
    .admin-word-form { grid-template-columns:1fr 1fr; }
    .admin-word-form > :first-child { grid-column:1/-1; }
    .admin-word-row { grid-template-columns:1fr auto; }
    .admin-word-row > :nth-child(2),.admin-word-row > :nth-child(3) { display:none; }
}
@media (max-width:560px) {
    .report-modal { padding:12px; }
    .report-modal-card { padding:22px 18px; border-radius:20px; }
    .report-modal-card h2 { font-size:24px; }
    .admin-word-form { grid-template-columns:1fr; }
    .admin-word-form > * { grid-column:auto !important; }
}
.spam-review-badge { display:inline-flex; align-items:center; margin-left:7px; padding:4px 7px; border-radius:999px; color:#a23f48; background:#fff0f1; font-size:10px; font-style:normal; font-weight:700; letter-spacing:.04em; vertical-align:middle; }


/* ===== Stage 19: viewport overflow hardening =====
 * Stage 14.1 made the hero overflow visible so custom dropdowns could escape it.
 * The old decorative ::after still extended -10% left/right and therefore made
 * the whole document wider than the viewport. Keep the angled cut without
 * creating off-screen geometry.
 */
html, body {
    max-width: 100%;
}
body {
    overflow-x: clip;
}
.hero::after {
    left: 0 !important;
    right: 0 !important;
    bottom: -210px !important;
    width: 100% !important;
    height: 300px !important;
    transform: none !important;
    clip-path: polygon(0 18%, 100% 0, 100% 100%, 0 100%);
}
.header-inner,
.main-nav,
.search-grid,
.category-pills,
.section-heading,
.footer-grid {
    min-width: 0;
}
@media (max-width: 1180px) and (min-width: 981px) {
    .header-inner { gap: 18px; }
    .main-nav { gap: 17px; font-size: 13px; }
    .add-btn { padding-inline: 14px; }
    .brand img { width: 140px; }
}

.admin-automation-card { grid-column: 1 / -1; }
.admin-automation-card .admin-card-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.admin-automation-card .admin-card-heading .ui-icon { width:22px; height:22px; color:#845c91; }
.admin-automation-card > p { max-width:820px; color:#746a79; line-height:1.6; }
.automation-last-run { display:flex; justify-content:space-between; gap:18px; align-items:center; margin:16px 0; padding:13px 15px; border-radius:13px; background:#f4f1f5; color:#6f6574; }
.automation-last-run strong,.automation-last-run span { display:block; }
.automation-last-run.ok { background:#eaf7f1; color:#1e704f; }
.automation-last-run.failed { background:#fff0f0; color:#9a3e48; }
.automation-last-run.skipped { background:#fff7e6; color:#8b682d; }
.admin-automation-note { display:block; margin-top:14px; color:#807684; line-height:1.55; }
.admin-automation-note code { padding:3px 7px; border-radius:7px; background:#f2edf4; color:#674b71; }
@media(max-width:640px){.automation-last-run{align-items:flex-start;flex-direction:column;gap:5px}}

/* Stage 20: SEO readiness panel in super-admin. */
.seo-readiness-card .seo-admin-links {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 14px 0;
}
.seo-readiness-card .automation-last-run.locked {
    border-color: rgba(126, 94, 143, .2);
    background: linear-gradient(135deg, rgba(135,86,169,.08), rgba(111,142,170,.08));
}

/* ===== Stage 21: multi-currency, remembered city, market estimate and mortgage ===== */
.listing-price-equivalent {
    margin: -2px 0 9px;
    color: #817487;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}
.property-price-equivalents {
    display: grid;
    gap: 3px;
    margin: -6px 0 14px;
    padding: 11px 13px;
    border: 1px solid rgba(128, 94, 145, .12);
    border-radius: 13px;
    background: linear-gradient(135deg, rgba(135,86,169,.06), rgba(111,142,170,.08));
}
.property-price-equivalents span,
.property-price-equivalents small { color: #827687; font-size: 11px; }
.property-price-equivalents strong { color: #54415c; font-size: 14px; line-height: 1.4; }

.price-range-currency-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    margin: 0 0 12px;
    padding: 5px;
    border-radius: 14px;
    background: #f4f1f6;
}
.price-range-currency-tabs button {
    min-height: 36px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #786d7d;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.price-range-currency-tabs button.active {
    color: #fff;
    background: linear-gradient(135deg, #8756a9, #708da7);
    box-shadow: 0 6px 16px rgba(110,80,130,.18);
}
.price-filter-currency {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}
.price-filter-currency > span {
    color: #827687;
    font-size: 11px;
    font-weight: 700;
}
.price-filter-currency .avo-select { width: 124px; }
.price-filter-currency .avo-select-trigger { min-height: 38px; padding-block: 7px; }

.catalog-current-city {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    margin: 0 0 16px;
    padding: 11px 14px;
    border: 1px solid rgba(128,94,145,.14);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(135,86,169,.07), rgba(111,142,170,.08));
    color: #776a7d;
    font-size: 13px;
}
.catalog-current-city .ui-icon { width: 17px; height: 17px; color: #8756a9; }
.catalog-current-city strong { color: #322a35; }
.catalog-current-city button,
.catalog-current-city a {
    border: 0;
    background: transparent;
    color: #754d84;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
}
.catalog-current-city a { margin-left: auto; }

.section-kicker {
    display: inline-flex;
    margin-bottom: 5px;
    color: #8756a9;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .13em;
}
.market-estimate-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}
.market-estimate-heading h2 { margin: 0 0 7px; }
.market-estimate-heading p { max-width: 650px; margin: 0; color: #746b78; line-height: 1.55; }
.market-estimate-summary {
    min-width: 190px;
    padding: 12px 15px;
    border-radius: 15px;
    background: #f4f1f5;
}
.market-estimate-summary strong,
.market-estimate-summary span { display: block; }
.market-estimate-summary strong { margin-bottom: 4px; color: #4a3d50; font-size: 14px; }
.market-estimate-summary span { color: #817684; font-size: 11px; line-height: 1.35; }
.market-estimate-summary--great { background: #e9f7ef; }
.market-estimate-summary--below { background: #f2f8e8; }
.market-estimate-summary--fair { background: #fff8df; }
.market-estimate-summary--above { background: #fff0df; }
.market-estimate-summary--high { background: #fff0f2; }
.market-price-scale {
    position: relative;
    padding-top: 39px;
}
.market-scale-marker {
    position: absolute;
    top: 0;
    left: var(--market-position,50%);
    z-index: 2;
    transform: translateX(-50%);
}
.market-scale-marker span {
    display: block;
    white-space: nowrap;
    padding: 7px 11px;
    border: 3px solid #fff;
    border-radius: 999px;
    background: #fff;
    color: #2d2730;
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 7px 18px rgba(43,35,48,.14);
}
.market-scale-marker::after {
    content: '';
    display: block;
    width: 2px;
    height: 15px;
    margin: 0 auto;
    background: #5e4b67;
}
.market-scale-bar {
    display: grid;
    grid-template-columns: repeat(5,1fr);
    height: 12px;
    overflow: hidden;
    border-radius: 999px;
}
.market-scale-bar i:nth-child(1) { background: #2dbd73; }
.market-scale-bar i:nth-child(2) { background: #99c93d; }
.market-scale-bar i:nth-child(3) { background: #f0ca3d; }
.market-scale-bar i:nth-child(4) { background: #f2a531; }
.market-scale-bar i:nth-child(5) { background: #ef4865; }
.market-scale-labels {
    display: grid;
    grid-template-columns: repeat(5,1fr);
    gap: 8px;
    margin-top: 10px;
    color: #6f6672;
    font-size: 11px;
    font-weight: 700;
    text-align: center;
}
.market-m2-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 19px;
    padding-top: 15px;
    border-top: 1px solid #eee8f0;
    color: #817685;
    font-size: 12px;
}
.market-m2-row strong { color: #4c3b54; font-size: 15px; }
.market-m2-row > :last-child { margin-left: auto; }
.market-estimate-empty {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px;
    border-radius: 15px;
    background: #f5f2f6;
    color: #766b7a;
}
.market-estimate-empty .ui-icon { width: 26px; height: 26px; color: #8756a9; }

.mortgage-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}
.mortgage-heading h2 { margin: 0; }
.mortgage-heading p { margin: 7px 0 0; color: #817685; font-size: 12px; }
.mortgage-grid {
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr);
    gap: 22px;
}
.mortgage-controls,
.mortgage-results {
    padding: 20px;
    border-radius: 18px;
    background: #f8f6f9;
}
.mortgage-property-value {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #e8e2ea;
}
.mortgage-property-value span { color: #7a707e; }
.mortgage-property-value strong { color: #372d3b; font-size: 18px; }
.mortgage-controls > label { display: block; margin-top: 18px; }
.mortgage-controls > label > span {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
    color: #64596a;
    font-weight: 700;
}
.mortgage-controls input[type=range] {
    width: 100%;
    accent-color: #8756a9;
}
.mortgage-controls small { display: block; margin-top: 5px; color: #8b808e; }
.mortgage-rate-field > div {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 13px;
    border: 1px solid #ded6e1;
    border-radius: 13px;
    background: #fff;
}
.mortgage-rate-field input {
    flex: 1;
    min-width: 0;
    border: 0 !important;
    padding-inline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.mortgage-rate-field em { color: #897e8d; font-size: 12px; font-style: normal; }
.mortgage-results { display: grid; gap: 11px; background: linear-gradient(145deg,#f3eef5,#edf3f8); }
.mortgage-results > div {
    padding: 15px 17px;
    border-radius: 14px;
    background: rgba(255,255,255,.78);
}
.mortgage-results span,
.mortgage-results strong { display: block; }
.mortgage-results span { margin-bottom: 4px; color: #7c7180; font-size: 12px; }
.mortgage-results strong { color: #302835; font-size: 21px; }

@media (max-width: 850px) {
    .market-estimate-heading,.mortgage-heading { flex-direction: column; gap: 12px; }
    .market-estimate-summary { width: 100%; }
    .mortgage-grid { grid-template-columns: 1fr; }
    .market-scale-labels { font-size: 9px; gap: 3px; }
    .market-m2-row { align-items: flex-start; flex-direction: column; }
    .market-m2-row > :last-child { margin-left: 0; }
}
@media (max-width: 560px) {
    .catalog-current-city a { margin-left: 0; width: 100%; }
    .price-filter-currency { align-items: flex-start; flex-direction: column; }
    .price-filter-currency .avo-select { width: 100%; }
    .market-scale-labels span:nth-child(2),.market-scale-labels span:nth-child(4) { display:none; }
    .market-scale-labels { grid-template-columns: 1fr 0 1fr 0 1fr; }
}
.currency-admin-card > p { color:#766c7a; line-height:1.55; }
.currency-admin-rates { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:15px 0; }
.currency-admin-rates > div { padding:14px; border-radius:14px; background:linear-gradient(135deg,#f6f1f7,#eef3f7); }
.currency-admin-rates span,.currency-admin-rates strong { display:block; }
.currency-admin-rates span { color:#827786; font-size:11px; margin-bottom:4px; }
.currency-admin-rates strong { color:#3b303f; font-size:16px; }
@media(max-width:640px){.currency-admin-rates{grid-template-columns:1fr}}


/* Stage 22.3: make zero-result states explain active filters instead of looking intermittent. */
.catalog-empty--smart{min-height:310px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:42px 24px}
.catalog-empty--smart[hidden]{display:none!important}
.catalog-empty-icon{width:48px;height:48px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#f7eef9,#edf3fa);color:#8a62a2;margin-bottom:4px}
.catalog-empty-icon svg{width:24px;height:24px}
.catalog-empty--smart>strong{font-size:32px;line-height:1}
.catalog-empty--smart>p{max-width:520px;margin:8px auto 2px;color:#706878;font-size:16px;line-height:1.55}
.catalog-empty-reset-city{display:inline-flex;align-items:center;gap:9px;margin-top:10px;padding:12px 18px;border:1px solid rgba(125,84,151,.24);border-radius:14px;background:linear-gradient(135deg,#8d5ca2,#7690ad);color:#fff;font-weight:700;box-shadow:0 10px 24px rgba(91,68,108,.16)}
.catalog-empty-reset-city:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(91,68,108,.22)}
.catalog-empty-reset-city svg{width:18px;height:18px}

/* Stage 23: owner listing lifecycle */
.status-pill.paused{color:#745985;background:linear-gradient(135deg,#f3eaf7,#edf0f8)}
.account-status-tabs a{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(101,84,109,.12);border-radius:999px;padding:9px 12px;color:#6d6570;background:#fff;font-size:12.5px;font-weight:700;text-decoration:none;transition:.18s ease}
.account-status-tabs a:hover{border-color:rgba(117,87,129,.28);background:#f7f2f8;color:#5f4568}
.account-status-tabs a.active{color:#fff;border-color:transparent;background:linear-gradient(110deg,#755781,#8d7095 58%,#7892ad);box-shadow:0 7px 18px rgba(92,67,103,.16)}
.account-status-tabs a b{margin-left:2px;font-size:.92em;opacity:.88}
.listing-expiry-meta{display:block;color:#8b7e8d!important;font-size:12px!important}
.account-real-listing-actions .danger-action{color:#a44d51!important}
.account-real-listing-actions .danger-action:hover{background:#fbecee!important;color:#8c383d!important}
.owner-preview-notice{display:flex;gap:14px;align-items:flex-start;margin:0 0 20px;padding:16px 18px;border:1px solid rgba(117,87,129,.18);border-radius:16px;background:linear-gradient(135deg,rgba(246,239,249,.96),rgba(238,243,249,.93));box-shadow:0 12px 32px rgba(50,39,53,.06)}
.owner-preview-notice>.ui-icon{width:23px;height:23px;flex:0 0 23px;color:#7a5b86;margin-top:1px}.owner-preview-notice div{display:grid;gap:3px}.owner-preview-notice strong{font-size:15px;color:#503d59}.owner-preview-notice span{font-size:13.5px;line-height:1.48;color:#746a78}
.owner-confirm-overlay{position:fixed;inset:0;z-index:50000;display:grid;place-items:center;padding:20px;background:rgba(30,24,33,.46);backdrop-filter:blur(8px);opacity:0;transition:opacity .14s ease}
.owner-confirm-overlay.is-open{opacity:1}.owner-confirm-card{width:min(460px,100%);padding:26px;border:1px solid rgba(117,87,129,.17);border-radius:24px;background:linear-gradient(145deg,#fff,#f8f4f9 58%,#f2f6fa);box-shadow:0 28px 80px rgba(38,29,42,.26);transform:translateY(10px) scale(.985);transition:transform .16s ease}.owner-confirm-overlay.is-open .owner-confirm-card{transform:none}.owner-confirm-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:14px;border-radius:14px;background:linear-gradient(135deg,#8756a9,#738da8);color:#fff;font-weight:700;font-size:20px}.owner-confirm-card p{margin:0;color:#3f3643;font-size:15.5px;line-height:1.55}.owner-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.owner-confirm-actions .primary-btn,.owner-confirm-actions .secondary-btn{min-height:43px;padding:0 18px}
.owner-action-toast{position:fixed;right:24px;bottom:24px;z-index:50010;max-width:min(420px,calc(100vw - 48px));padding:14px 17px;border-radius:14px;background:#fff;box-shadow:0 18px 48px rgba(39,30,43,.22);transform:translateY(18px);opacity:0;transition:.18s ease}.owner-action-toast.show{transform:none;opacity:1}.owner-action-toast.error{border:1px solid rgba(177,68,75,.24);color:#8d4147;background:#fff8f8}
@media(max-width:760px){.account-status-tabs{gap:6px}.account-status-tabs a{padding:8px 10px;font-size:11.5px}.owner-confirm-actions{flex-direction:column-reverse}.owner-confirm-actions>*{width:100%;justify-content:center}}

/* Stage 23.1: lifecycle controls are real POST forms, JS only enhances confirmation. */
.owner-action-form{margin:0;padding:0}
.owner-action-form button.loading{opacity:.65;pointer-events:none}

/* Stage 24 - account notification center */
.notifications-nav{position:relative;min-width:38px;justify-content:center}
.notifications-nav .nav-notification-label{display:none}
.notifications-count,.account-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#d72f2f;color:#fff;font-size:11px;font-weight:700;line-height:1;box-shadow:0 4px 12px rgba(215,47,47,.22)}
.notifications-nav .notifications-count{position:absolute;top:1px;right:-2px;border:2px solid rgba(46,55,74,.95);height:19px;min-width:19px;padding:0 5px;font-size:10px}
.account-nav a{position:relative}
.account-nav-badge{margin-left:auto}
.notification-list{display:grid;gap:12px}
.notification-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:17px 18px;border:1px solid #e7e1ec;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(45,36,54,.045)}
.notification-card.unread{border-color:#cdb7dc;background:linear-gradient(135deg,#fff 0%,#fbf7fd 58%,#f0f5fa 100%);box-shadow:0 12px 32px rgba(117,77,132,.10)}
.notification-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#f3eaf7,#eaf1f7);color:#81579a}
.notification-card.unread .notification-icon{background:linear-gradient(135deg,#8756a9,#708eaa);color:#fff}
.notification-icon .ui-icon{width:22px;height:22px}
.notification-copy{min-width:0}
.notification-copy strong{display:block;margin-bottom:4px;font-size:16px;color:#241d29}
.notification-copy p{margin:0 0 5px;color:#655c6d;font-size:14px;line-height:1.45}
.notification-copy small{color:#9990a0;font-size:12px}
.notification-actions{display:flex;align-items:center;gap:8px}
.notification-read-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid #ded5e5;border-radius:12px;background:#fff;color:#775186;cursor:pointer}
.notification-read-btn:hover{background:#f5eff8;color:#5d386c}
.notification-read-btn .ui-icon{width:18px;height:18px}
@media(max-width:760px){.notification-card{grid-template-columns:40px minmax(0,1fr);padding:15px}.notification-icon{width:40px;height:40px}.notification-actions{grid-column:2;justify-content:flex-start}.notifications-nav .notifications-count{right:0}}

/* Stage 25: verified registration and live account security */
.auth-form label small{color:#807587;font-size:.82rem;line-height:1.45;font-weight:500}
.auth-form label>span em{font-style:normal;font-weight:600;color:#9b8ea1;font-size:.78rem;margin-left:4px}
.auth-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:10px!important;cursor:pointer}.auth-check input{width:18px!important;height:18px;margin-top:2px;accent-color:#815a9c}.auth-check span{font-weight:650!important;line-height:1.45}
.verify-phone-card{display:flex;align-items:center;gap:13px;padding:16px 18px;border:1px solid #e1d8e7;background:linear-gradient(135deg,#faf7fc,#f1f5fa);border-radius:16px;margin:20px 0}.verify-phone-card>.ui-icon{width:24px;height:24px;color:#795492}.verify-phone-card div{display:grid;gap:3px}.verify-phone-card span{color:#807587;font-size:.85rem}.verify-phone-card strong{font-size:1.08rem;color:#2e2632}
.staging-otp-box{display:grid;justify-items:center;gap:5px;padding:17px;margin:14px 0 20px;border:1px dashed #a889ba;border-radius:16px;background:linear-gradient(135deg,rgba(135,86,169,.08),rgba(111,142,170,.08));text-align:center}.staging-otp-box span{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:#715380}.staging-otp-box strong{font-size:2rem;letter-spacing:.18em;color:#352b3b}.staging-otp-box small{color:#817486;max-width:430px;line-height:1.4}
.otp-input{text-align:center!important;font-size:1.6rem!important;letter-spacing:.24em!important;font-weight:700!important}
.auth-inline-form{text-align:center;margin-top:14px}.auth-inline-form .text-btn{font-weight:700;color:#75518d;background:none;border:0;padding:8px 12px;cursor:pointer}.staging-registration-note{margin-top:22px}
.settings-live-form{display:grid;gap:18px}.settings-live-form>.secondary-btn{justify-self:start}.settings-live-form .settings-form-grid{margin:0}.settings-live-form small{display:block;color:#8c818f;font-size:.8rem;line-height:1.35;margin-top:6px}.settings-password-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.settings-password-grid{grid-template-columns:1fr}.settings-live-form>.secondary-btn{width:100%;justify-content:center}}

/* Stage 26 - wallet top-ups and payment UI */
.balance-secure-note{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.66);border:1px solid rgba(125,83,151,.12);font-size:13px;font-weight:700;color:var(--purple,#754d84)}
.balance-secure-note .ui-icon{width:16px;height:16px}
.topup-panel{overflow:visible}
.topup-panel .account-section-heading p{margin:5px 0 0;color:#817987;font-size:14px}
.topup-presets{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 18px}
.topup-presets button{appearance:none;border:1px solid rgba(119,78,145,.17);background:linear-gradient(145deg,#fff,#f7f3fa);color:#60446d;border-radius:13px;padding:9px 15px;font:800 14px/1 inherit;box-shadow:0 7px 16px rgba(64,42,74,.05);cursor:pointer;transition:.18s ease}
.topup-presets button:hover,.topup-presets button.active{transform:translateY(-1px);color:#fff;border-color:transparent;background:linear-gradient(135deg,#805393,#8398b9);box-shadow:0 9px 22px rgba(95,64,112,.2)}
.topup-method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.topup-method-card{display:flex;flex-direction:column;gap:15px;min-height:280px;padding:20px;border:1px solid rgba(117,77,132,.13);border-radius:22px;background:linear-gradient(150deg,#fff 0%,#fbf9fc 62%,#f2f5f9 100%);box-shadow:0 15px 36px rgba(58,42,69,.07)}
.topup-method-card.staging{background:linear-gradient(150deg,#fff 0%,#f7fbfa 58%,#edf5f6 100%)}
.topup-method-card.disabled{opacity:.78}
.topup-method-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:13px;border-bottom:1px solid rgba(110,83,120,.1)}
.topup-method-head>span{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#493652}
.topup-method-head>em{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#83778a;background:#f3eef6;padding:6px 9px;border-radius:999px}
.paypal-wordmark{font-size:21px;letter-spacing:-.04em;color:#173d7a!important}
.topup-method-card label{display:grid;gap:8px;color:#5f5665;font-size:13px;font-weight:700}
.money-input-wrap{position:relative}
.money-input-wrap input{width:100%;height:56px;padding:0 54px 0 16px;border:1px solid rgba(120,80,144,.2);border-radius:16px;background:#fff;font-size:24px;font-weight:700;color:#251e29;outline:none;transition:.18s ease}
.money-input-wrap input:focus{border-color:#9366ad;box-shadow:0 0 0 4px rgba(142,93,169,.11)}
.money-input-wrap b{position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:20px;color:#805393}
.topup-method-card p{margin:0;color:#746b79;line-height:1.55;font-size:14px}
.topup-method-card small{display:block;color:#928895;font-size:12px}
.topup-method-card .primary-btn,.topup-method-card .secondary-btn{margin-top:auto;justify-content:center;min-height:50px}
.online-order-list{display:grid;gap:9px}
.online-order-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;border:1px solid rgba(118,78,143,.1);border-radius:14px;background:#fff}
.online-order-list span{display:grid;gap:3px}.online-order-list small{color:#938a97}.online-order-list>div>span:last-child{text-align:right}
.payment-order-status{display:inline-flex;justify-self:end;margin-top:3px;padding:4px 8px;border-radius:999px;font-style:normal;font-size:11px;font-weight:700;background:#f2edf4;color:#70537d}
.payment-order-status.paid{background:#e8f6ef;color:#277254}.payment-order-status.cancelled{background:#f4f1f3;color:#7b6e76}.payment-order-status.failed,.payment-order-status.capture_failed,.payment-order-status.amount_mismatch{background:#fff0f0;color:#a54848}
@media(max-width:820px){.topup-method-grid{grid-template-columns:1fr}.topup-method-card{min-height:0}.online-order-list>div{align-items:flex-start}.balance-secure-note{display:none}}

/* Stage 26 - super-admin wallet, PayPal and paid-service controls */
.stage26-services-card,.stage26-payment-settings{overflow:visible}
.stage26-services-card>p,.stage26-payment-settings>p,.stage26-payment-tools .admin-card>p{color:#756b79;line-height:1.55}
.stage26-service-list{display:grid;gap:11px;margin-top:14px}
.stage26-service-row{display:grid;grid-template-columns:minmax(150px,1.35fr) 110px 92px 98px auto;gap:10px;align-items:end;padding:13px;border:1px solid rgba(116,80,134,.12);border-radius:16px;background:linear-gradient(145deg,#fff,#faf7fb 62%,#f3f6f9)}
.stage26-service-name{display:grid;gap:3px;align-self:center}.stage26-service-name strong{font-size:15px;color:#332938}.stage26-service-name small{font-size:10px;letter-spacing:.08em;color:#94899a}
.stage26-service-row label,.stage26-payment-settings-form label,.stage26-balance-adjust-form label{display:grid;gap:6px;color:#655a69;font-size:11px;font-weight:700}
.stage26-service-row input[type=number],.stage26-payment-settings-form input,.stage26-payment-settings-form select,.stage26-balance-adjust-form input{width:100%;min-height:43px;border:1px solid rgba(119,79,143,.17);border-radius:12px;background:#fff;padding:0 12px;color:#302535;font:750 13px/1 inherit;outline:none}
.stage26-service-row input:focus,.stage26-payment-settings-form input:focus,.stage26-payment-settings-form select:focus,.stage26-balance-adjust-form input:focus{border-color:#9165aa;box-shadow:0 0 0 3px rgba(142,93,169,.10)}
.stage26-service-toggle{align-self:center;display:flex!important;align-items:center;gap:8px!important;padding-top:16px;cursor:pointer}.stage26-service-toggle input{width:18px;height:18px;accent-color:#805393}.stage26-service-toggle span{font-size:12px}
.stage26-service-row .secondary-btn{min-height:43px;justify-content:center;white-space:nowrap}
.stage26-payment-health{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:14px 0}
.stage26-payment-health>div{padding:12px 13px;border:1px solid rgba(119,79,143,.1);border-radius:14px;background:linear-gradient(145deg,#fff,#f4f2f7);display:grid;gap:4px}.stage26-payment-health span{color:#8a7e8d;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.stage26-payment-health strong{font-size:13px;color:#423547}.stage26-payment-health strong.ok{color:#287254}.stage26-payment-health strong.off{color:#9b5960}
.stage26-payment-health.compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.stage26-payment-settings-form{display:grid;grid-template-columns:1fr 1fr 120px;gap:10px;align-items:end;margin-top:14px}.stage26-payment-settings-form .admin-primary{min-height:43px;grid-column:1/-1;justify-self:start}
.stage26-secret-note{display:flex;gap:11px;align-items:flex-start;margin-top:16px;padding:13px 14px;border:1px solid rgba(106,134,164,.16);border-radius:14px;background:linear-gradient(135deg,#f8f4fa,#edf4f8);color:#665b69}.stage26-secret-note>.ui-icon{width:20px;height:20px;flex:0 0 20px;color:#75548a;margin-top:1px}.stage26-secret-note div{display:grid;gap:3px}.stage26-secret-note strong{font-size:12.5px;color:#493950}.stage26-secret-note span{font-size:11.5px;line-height:1.45}.stage26-secret-note code{font-size:.95em}
.stage26-payment-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.stage26-payment-tools{align-items:start}.stage26-balance-adjust-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.stage26-balance-adjust-form .wide{grid-column:1/-1}.stage26-balance-adjust-form .admin-primary{justify-self:start}
.stage26-online-orders-card{margin:0 26px 16px}.stage26-online-orders-card .payment-order-status{justify-self:start;white-space:nowrap}.stage26-online-orders-card td small{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1180px){.stage26-service-row{grid-template-columns:1fr 1fr 1fr}.stage26-service-name{grid-column:1/-1}.stage26-service-row .secondary-btn{grid-column:1/-1;justify-self:start}.stage26-payment-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.stage26-service-row,.stage26-payment-settings-form,.stage26-balance-adjust-form{grid-template-columns:1fr}.stage26-service-name,.stage26-balance-adjust-form .wide{grid-column:auto}.stage26-service-toggle{padding-top:0}.stage26-service-row .secondary-btn,.stage26-payment-settings-form .admin-primary{grid-column:auto;width:100%}.stage26-payment-health,.stage26-payment-health.compact,.stage26-payment-stats{grid-template-columns:1fr}.stage26-online-orders-card{margin:0 12px 16px}}

/* Stage 27 / Stage 41.18: clear company editor */
.company-editor-form{margin-top:18px;padding:24px}
.company-editor-form .account-section-heading{margin-bottom:20px}
.company-editor-heading p{max-width:720px;line-height:1.55}
.company-form-section{padding:20px;border:1px solid rgba(102,79,111,.12);border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(250,248,252,.96));box-shadow:0 10px 28px rgba(43,30,48,.035)}
.company-form-section+.company-form-section{margin-top:18px}
.company-form-section-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}
.company-form-section-number{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#8756a9,#718eaa);color:#fff;font-size:13px;font-weight:700;box-shadow:0 7px 16px rgba(119,79,143,.16)}
.company-form-section-head>div{min-width:0;padding-top:1px}
.company-form-section-head h4{margin:0;color:#2c2430;font-size:17px;font-weight:700;line-height:1.25}
.company-form-section-head p{margin:4px 0 0;color:#827784;font-size:12.5px;font-weight:500;line-height:1.5}
.company-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.company-form-grid label{display:flex;flex-direction:column;gap:8px;color:#564c5d;font-weight:600;font-size:13px}
.company-form-grid input,.company-form-grid select,.company-description-card textarea{width:100%;min-height:50px;border:1px solid rgba(102,79,111,.18);border-radius:15px;background:linear-gradient(180deg,#fff,#fbf9fc);padding:0 15px;color:#241d29;font:inherit;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.company-form-grid input:focus,.company-form-grid select:focus,.company-description-card textarea:focus{border-color:#8b5ea5;box-shadow:0 0 0 4px rgba(139,94,165,.10);background:#fff}
.company-form-wide{grid-column:1/-1}
.company-form-grid input[type=file]{padding:7px 8px;height:auto;min-height:50px;color:#6b606d;background:#fff}
.company-form-grid input[type=file]::file-selector-button{margin-right:12px;padding:9px 13px;border:0;border-radius:10px;background:#f0ebf4;color:#654c70;font:inherit;font-weight:600;cursor:pointer;transition:background .18s ease,color .18s ease}
.company-form-grid input[type=file]::file-selector-button:hover{background:#e8dff0;color:#744d89}
.company-form-grid small{font-size:12px;line-height:1.45;color:var(--muted);font-weight:500}
.company-description-list{display:grid;gap:12px}
.company-description-card{display:block;padding:15px;border:1px solid rgba(102,79,111,.12);border-radius:17px;background:#fff;transition:border-color .18s ease,box-shadow .18s ease}
.company-description-card:focus-within{border-color:rgba(139,94,165,.3);box-shadow:0 8px 24px rgba(71,48,82,.055)}
.company-description-card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:11px}
.company-description-card-head>span{display:grid;gap:3px;min-width:0}
.company-description-card-head strong{color:#3a303f;font-size:13.5px;font-weight:700;line-height:1.25}
.company-description-card-head small{color:#8a7d8d;font-size:11.5px;font-weight:500;line-height:1.4}
.company-language-code{display:grid;place-items:center;flex:0 0 38px;width:38px;height:29px;border-radius:9px;background:linear-gradient(135deg,#f1ebf5,#edf2f7);border:1px solid rgba(111,78,128,.10);color:#704f80;font-size:11px;font-weight:700;letter-spacing:.06em}
.company-description-card textarea{display:block;padding:13px 14px;min-height:122px;resize:vertical;line-height:1.55;font-weight:400}
.company-description-card textarea::placeholder{color:#aaa0ad;opacity:1}
.company-link-listings{display:flex;align-items:center;gap:10px;margin-top:18px;padding:14px 16px;border-radius:14px;background:linear-gradient(135deg,rgba(133,86,169,.08),rgba(111,142,170,.08));font-weight:600;color:#514458}
.company-link-listings input{width:18px;height:18px;accent-color:#8756a9}
.company-editor-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}
.company-account-card .status-pill.pending{background:#fff5df;color:#9a6711}
.company-account-card .status-pill.blocked{background:#ffeaea;color:#a83d3d}
.company-account-card .status-pill.inactive{background:#f0eef2;color:#6f6674}
.company-logo-account{background:linear-gradient(135deg,#754d84 0%,#8756a9 52%,#6f8eaa 100%);object-fit:contain;padding:9px}
@media(max-width:820px){.company-form-grid{grid-template-columns:1fr}.company-editor-form{padding:18px}.company-form-wide{grid-column:auto}.company-form-section{padding:16px;border-radius:17px}.company-form-section-head{margin-bottom:15px}.company-description-card{padding:13px}.company-description-card textarea{min-height:136px}}
.listing-company-link{color:#754d84;text-decoration:none;font-weight:700}.listing-company-link:hover{text-decoration:underline}.contact-line--company strong{max-width:62%;text-align:right}

/* Stage 28 - media manager and lightweight thumbnails */
.photo-manager{margin:0 0 22px;padding:18px;border:1px solid rgba(111,78,128,.15);border-radius:22px;background:linear-gradient(135deg,rgba(250,247,251,.96),rgba(244,247,251,.96));box-shadow:0 14px 34px rgba(43,30,48,.06)}
.photo-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.photo-manager-head strong{font-size:17px;color:#2d2430}.photo-manager-head span{max-width:520px;font-size:13px;line-height:1.45;color:#806f82;text-align:right}
.photo-manager-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.photo-manager-item{position:relative;min-width:0;border:2px solid transparent;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 8px 20px rgba(43,30,48,.08);transition:.18s ease}.photo-manager-item.is-cover{border-color:#8a5aa5;box-shadow:0 10px 24px rgba(119,79,143,.18)}.photo-manager-item.is-removed{opacity:.38;filter:grayscale(.8)}
.photo-manager-item>img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.photo-cover-badge{position:absolute;left:8px;top:8px;padding:5px 8px;border-radius:999px;background:linear-gradient(135deg,#7e4e96,#708eae);color:#fff;font-size:11px;font-weight:700;opacity:0;transform:translateY(-4px);transition:.18s}.photo-manager-item.is-cover .photo-cover-badge{opacity:1;transform:none}
.photo-manager-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#eee7f0}.photo-manager-actions button{display:grid;place-items:center;min-height:38px;border:0;background:#fff;color:#67566c;cursor:pointer}.photo-manager-actions button:hover{background:#f4eef6;color:#7c4f94}.photo-manager-actions button.danger:hover{background:#fff0f0;color:#c34848}.photo-manager-actions .ui-icon{width:17px;height:17px}
.photo-upload-field{position:relative}.new-photo-preview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}.new-photo-preview:empty{display:none}.new-photo-preview figure{margin:0;min-width:0;border:1px solid rgba(111,78,128,.12);border-radius:14px;overflow:hidden;background:#fff}.new-photo-preview img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.new-photo-preview figcaption{padding:6px 8px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#786b7b}
.admin-media-preview-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.admin-media-preview-row img{width:92px;height:68px;object-fit:cover;border-radius:10px;border:1px solid rgba(111,78,128,.14);background:#f6f3f7}.media-revision-meta{display:inline-flex;gap:8px;flex-wrap:wrap;margin-top:6px}.media-revision-meta span{padding:4px 7px;border-radius:999px;background:#f3edf5;color:#6e5678;font-size:12px;font-weight:700}
@media(max-width:900px){.photo-manager-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.new-photo-preview{grid-template-columns:repeat(4,minmax(0,1fr))}.photo-manager-head{display:block}.photo-manager-head span{display:block;margin-top:5px;text-align:left}}
@media(max-width:620px){.photo-manager-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.new-photo-preview{grid-template-columns:repeat(3,minmax(0,1fr))}.photo-manager{padding:12px;border-radius:18px}.photo-manager-actions button{min-height:42px}}

/* Stage 29: persistence, account forms, notifications and admin queue badges */
.settings-live-form{padding:24px}
.settings-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.settings-form-grid label{display:flex;flex-direction:column;gap:8px;color:#574d5d;font-size:13px;font-weight:700}
.settings-form-grid input{width:100%;min-height:52px;border:1px solid rgba(100,76,112,.18);border-radius:16px;background:linear-gradient(180deg,#fff 0%,#fbf9fc 100%);padding:0 16px;color:#251e2a;font:inherit;font-size:15px;outline:none;box-shadow:0 8px 22px rgba(45,31,52,.035);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.settings-form-grid input:focus{border-color:#8a5ca3;background:#fff;box-shadow:0 0 0 4px rgba(138,92,163,.10),0 10px 28px rgba(45,31,52,.05)}
.settings-form-grid input:disabled{color:#746b79;background:linear-gradient(180deg,#f5f2f6,#f1eef3);cursor:not-allowed}
.settings-form-grid small{font-size:12px;line-height:1.45;color:#83788a;font-weight:500}
.settings-live-form>.secondary-btn{margin-top:18px}
.auth-footer--split{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.staging-reset-link{margin-top:14px;padding:14px;border-radius:14px;background:#f7f3fa;border:1px solid rgba(125,83,151,.14);display:grid;gap:7px;word-break:break-all}
.staging-reset-link a{font-size:12px;line-height:1.45}
.phone-prefix-field{display:grid;grid-template-columns:auto 1fr;align-items:center;min-height:52px;border:1px solid rgba(100,76,112,.18);border-radius:16px;background:linear-gradient(180deg,#fff,#fbf9fc);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease}
.phone-prefix-field:focus-within{border-color:#8a5ca3;box-shadow:0 0 0 4px rgba(138,92,163,.10)}
.phone-prefix{height:100%;display:flex;align-items:center;padding:0 13px 0 16px;font-weight:700;color:#694a78;background:linear-gradient(135deg,rgba(139,86,169,.12),rgba(111,142,170,.10));border-right:1px solid rgba(100,76,112,.12)}
.phone-prefix-field input{border:0!important;box-shadow:none!important;background:transparent!important;border-radius:0!important;min-width:0!important}
.notification-heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.notification-actions{display:flex;align-items:center;gap:8px}
.notification-read-state,.notification-read-btn,.notification-delete-btn{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;border:1px solid rgba(100,76,112,.14);background:#fff;color:#74517e;padding:0}
.notification-read-state{color:#27805d;background:#edf8f3}
.notification-delete-btn{color:#b84444;background:#fff7f7}
.notification-delete-btn:hover{background:#fdeaea;border-color:rgba(184,68,68,.2)}
.notification-pagination{display:flex;gap:7px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:18px}
.notification-pagination a{min-width:38px;height:38px;padding:0 10px;display:grid;place-items:center;border-radius:11px;border:1px solid rgba(100,76,112,.14);background:#fff;color:#654a70;font-weight:700;text-decoration:none}
.notification-pagination a.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,#8756a9,#7896b5);box-shadow:0 8px 18px rgba(105,75,125,.18)}
.admin-sidebar nav a{position:relative}
.admin-nav-badge{margin-left:auto;min-width:22px;height:22px;padding:0 6px;display:inline-grid;place-items:center;border-radius:999px;background:#e34d55;color:#fff;font-size:11px;font-weight:700;line-height:1;box-shadow:0 5px 12px rgba(227,77,85,.24)}
@media(max-width:900px){.settings-form-grid{grid-template-columns:1fr}.notification-heading-actions{justify-content:flex-start}}
.listing-error-ref{display:block;margin-top:6px;font-size:11px;opacity:.72;font-weight:700}

/* Stage 29.1: queued photo uploads can be added one-by-one and removed before submit. */
.new-photo-preview figure{position:relative}
.new-photo-remove{position:absolute;top:7px;right:7px;width:28px;height:28px;border:0;border-radius:999px;background:rgba(30,24,34,.82);color:#fff;font-size:21px;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 5px 14px rgba(24,18,28,.18);transition:.16s ease}
.new-photo-remove:hover{background:#c64049;transform:scale(1.05)}

/* Stage 29.2: moderation diff, YouTube embed and cover selection for new photos. */
.moderation-item--revision{align-items:stretch;gap:18px}.moderation-revision-main{min-width:0;flex:1}.revision-diff-summary{display:inline-flex;align-items:center;gap:6px;margin:12px 0 10px;padding:6px 10px;border-radius:999px;background:linear-gradient(135deg,rgba(135,86,169,.10),rgba(111,142,170,.12));color:#6d4e79;font-size:12px;font-weight:700}.revision-diff-summary b{font-size:14px}.revision-diff-list{display:grid;gap:8px;margin-top:4px}.revision-diff-row{padding:10px 12px;border:1px solid rgba(104,77,118,.11);border-radius:14px;background:linear-gradient(135deg,#fff,#fbf9fc)}.revision-diff-row>strong{display:block;margin-bottom:7px;color:#362d3a;font-size:12px}.revision-diff-row>div{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:8px;align-items:center}.revision-diff-row span.revision-before,.revision-diff-row span.revision-after{display:block;min-width:0;padding:8px 10px;border-radius:10px;background:#f7f4f7}.revision-diff-row .revision-after{background:#f0f7f5}.revision-diff-row small{display:block;margin-bottom:3px;color:#95889a;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.revision-diff-row em{display:block;color:#4b414f;font-style:normal;font-size:12px;line-height:1.45;overflow-wrap:anywhere}.revision-diff-row.is-multiline em{white-space:normal;max-height:160px;overflow:auto}.revision-arrow{display:grid;place-items:center;color:#9569aa}.revision-arrow .ui-icon{width:16px;height:16px}.moderation-revision-actions{min-width:190px;align-content:flex-start}.moderation-revision-actions>a,.moderation-revision-actions form{width:100%}.revision-preview-btn{background:linear-gradient(135deg,rgba(135,86,169,.10),rgba(111,142,170,.12))}.admin-empty-note.compact{margin:8px 0 0}.revision-preview-public-notice{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:13px 16px;border:1px solid rgba(135,86,169,.18);border-radius:16px;background:linear-gradient(135deg,#f5eef9,#eef5fa);color:#5e4569}.revision-preview-public-notice>.ui-icon{width:22px;height:22px;flex:0 0 auto}.revision-preview-public-notice strong,.revision-preview-public-notice span{display:block}.revision-preview-public-notice strong{font-size:14px}.revision-preview-public-notice span{margin-top:2px;color:#776b7c;font-size:12px}

.property-video-section{overflow:hidden}.property-video-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.property-video-heading h2{margin:0}.property-video-frame{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:22px;background:#17131a;box-shadow:0 18px 40px rgba(37,28,42,.14)}.property-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.new-photo-cover-hint{display:block;margin-top:7px;color:#7b7080;font-size:11px;line-height:1.45}.new-photo-preview figure{border:2px solid transparent;transition:.18s ease}.new-photo-preview figure.is-cover{border-color:#8a5aa5;box-shadow:0 10px 24px rgba(119,79,143,.18)}.new-photo-cover-btn{position:absolute;top:7px;left:7px;width:30px;height:30px;border:0;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.93);color:#79518a;cursor:pointer;box-shadow:0 5px 14px rgba(24,18,28,.16);transition:.16s ease}.new-photo-cover-btn .ui-icon{width:16px;height:16px}.new-photo-cover-btn:hover{transform:scale(1.05);background:#fff}.new-photo-preview figure.is-cover .new-photo-cover-btn{color:#fff;background:linear-gradient(135deg,#8756a9,#6f8eaa)}.new-photo-cover-badge{position:absolute;left:43px;top:8px;padding:5px 8px;border-radius:999px;background:linear-gradient(135deg,#7e4e96,#708eae);color:#fff;font-size:10px;font-weight:700;opacity:0;transform:translateY(-3px);transition:.16s ease}.new-photo-preview figure.is-cover .new-photo-cover-badge{opacity:1;transform:none}

@media(max-width:900px){.moderation-item--revision{display:block}.moderation-revision-actions{margin-top:14px}.revision-diff-row>div{grid-template-columns:1fr}.revision-arrow{transform:rotate(90deg)}.property-video-heading{align-items:flex-start;flex-direction:column}}

/* ===== AVO.GE 2.0 · Stage 30 · New brand identity + premium homepage ===== */
:root {
    --avo30-bg: #090911;
    --avo30-bg-2: #0f0d19;
    --avo30-panel: rgba(19, 17, 31, .78);
    --avo30-panel-solid: #15131f;
    --avo30-line: rgba(216, 196, 255, .13);
    --avo30-line-strong: rgba(190, 151, 255, .26);
    --avo30-text: #f8f5ff;
    --avo30-muted: #a9a2b8;
    --avo30-purple: #8a5cff;
    --avo30-purple-2: #b266ff;
    --avo30-lilac: #d9c4ff;
    --avo30-gradient: linear-gradient(135deg, #7650ff 0%, #9c55ff 48%, #d5a0ff 100%);
}

/* Brand system, shared by home and inner pages. */
.brand-v30 {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: max-content;
}
.brand-v30 .brand-mark {
    width: 44px;
    height: 44px;
    object-fit: contain;
    filter: drop-shadow(0 9px 18px rgba(112, 60, 239, .22));
}
.brand-wordmark {
    display: inline-flex;
    align-items: baseline;
    color: #fff;
    font-size: 24px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: -.045em;
}
.brand-wordmark b {
    color: #b989ff;
    font-weight: 700;
}
.footer-brand-v30 {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -.045em;
}
.footer-brand-v30 img { width: 38px; height: 38px; }
.footer-brand-v30 b { color: #b989ff; }

/* New homepage shell. */
.page-home {
    background: var(--avo30-bg);
    color: var(--avo30-text);
}
.page-home .container {
    width: min(1320px, calc(100% - 56px));
}
.page-home .site-header {
    top: 25px;
}
.page-home .header-inner {
    min-height: 68px;
    padding: 0 12px 0 16px;
    gap: 20px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 18px;
    background: rgba(11, 10, 20, .54);
    box-shadow: 0 18px 55px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.04);
    backdrop-filter: blur(20px) saturate(130%);
}
.page-home .main-nav {
    gap: 19px;
    font-size: 13px;
    font-weight: 650;
}
.page-home .main-nav > a:not(.add-btn) {
    color: rgba(255,255,255,.78);
    opacity: 1;
}
.page-home .main-nav > a:not(.add-btn):hover {
    color: #fff;
}
.page-home .main-nav > a .ui-icon {
    color: #b5a7c8;
    opacity: .9;
}
.page-home .add-btn {
    min-height: 42px;
    padding: 0 16px;
    border-radius: 12px;
    border: 1px solid rgba(222,195,255,.26);
    background: var(--avo30-gradient);
    box-shadow: 0 10px 30px rgba(114,65,238,.28);
}
.page-home .language-switch {
    padding: 3px;
    border-color: rgba(255,255,255,.12);
    background: rgba(255,255,255,.04);
    border-radius: 11px;
}
.page-home .language-switch a { min-width: 34px; height: 32px; }
.page-home .language-switch a.active {
    color: #17111f;
    background: #f2ebff;
}

.hero-v30 {
    min-height: 820px;
    display: block;
    position: relative;
    overflow: visible;
    isolation: isolate;
    background: #090911 url('/assets/avo35_2_20260817/img/hero-realestate.webp') 63% center / cover no-repeat;
    color: var(--avo30-text);
}
.hero-v30::after { display: none; }
.hero-v30 .hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(6,6,13,.68) 0%, rgba(7,7,15,.32) 50%, rgba(7,7,15,.04) 78%),
        linear-gradient(180deg, rgba(7,7,13,.08) 0%, rgba(8,8,16,.10) 58%, rgba(9,9,17,.88) 100%);
}
.hero-grid-glow {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}
.hero-grid-glow::before {
    content: '';
    position: absolute;
    left: -180px;
    top: 210px;
    width: 680px;
    height: 680px;
    border-radius: 50%;
    background: rgba(112, 58, 244, .09);
    filter: blur(110px);
}
.hero-v30 .hero-content {
    position: relative;
    z-index: 20;
    padding-top: 170px;
    padding-bottom: 72px;
}
.hero-copy-v30 {
    max-width: 790px;
}
.hero-eyebrow {
    align-items: center;
    gap: 9px;
    padding: 7px 12px 7px 8px;
    border-color: rgba(211,188,255,.17);
    background: rgba(207,182,255,.07);
    color: #c6b4df;
    font-size: 10px;
    letter-spacing: .14em;
    backdrop-filter: blur(12px);
}
.hero-eyebrow img { width: 23px; height: 23px; }
.hero-v30 h1 {
    max-width: 820px;
    margin: 24px 0 16px;
    color: #fff;
    font-size: clamp(52px, 5.1vw, 78px);
    line-height: .98;
    letter-spacing: -.052em;
    text-wrap: balance;
}
.hero-v30 .hero-copy p {
    max-width: 680px;
    color: #b8b0c5;
    font-size: 17px;
    line-height: 1.65;
}
.hero-city-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 24px;
    color: #958da4;
    font-size: 12px;
}
.hero-city-row span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.hero-city-row span + span::before {
    content: '';
    width: 3px;
    height: 3px;
    margin-right: 1px;
    border-radius: 50%;
    background: #7854aa;
}
.hero-city-row .ui-icon { width: 14px; height: 14px; color: #9a6dff; }

.search-card-v30 {
    max-width: none;
    margin-top: 46px;
    padding: 13px;
    border: 1px solid rgba(224,205,255,.14);
    border-radius: 22px;
    color: #f8f5ff;
    background: rgba(15, 13, 27, .77);
    box-shadow: 0 26px 80px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.04);
    backdrop-filter: blur(24px) saturate(130%);
}
.search-card-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 2px 3px 11px;
}
.search-card-v30 .deal-tabs { margin: 0; gap: 4px; }
.search-card-v30 .deal-tab {
    min-width: 84px;
    padding: 9px 16px;
    border-radius: 10px;
    color: #9d95aa;
    background: transparent;
}
.search-card-v30 .deal-tab.active {
    color: #fff;
    background: rgba(132,83,246,.18);
    box-shadow: inset 0 0 0 1px rgba(180,139,255,.20);
}
.search-card-caption {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding-right: 5px;
    color: #7f778d;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
}
.search-card-caption .ui-icon { width: 14px; height: 14px; color: #9f68ff; }
.search-card-v30 .search-grid {
    grid-template-columns: 1.2fr 1.1fr 1fr .72fr;
    gap: 8px;
}
.search-card-v30 .search-grid > label {
    min-width: 0;
    padding: 10px 11px 11px;
    border: 1px solid rgba(222,205,244,.10);
    border-radius: 15px;
    background: rgba(255,255,255,.035);
}
.search-card-v30 .search-grid > label > span {
    margin: 0 0 7px 2px;
    color: #80788c;
    font-size: 9px;
    letter-spacing: .12em;
}
.page-home .search-grid .avo-select-trigger,
.page-home .search-grid .avo-search-select-input,
.page-home .search-grid .price-range-trigger,
.page-home .search-grid select {
    min-height: 48px;
    height: 48px;
    border: 1px solid rgba(220,204,241,.14);
    border-radius: 12px;
    color: #f1edf8;
    background: rgba(255,255,255,.055);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}
.page-home .search-grid .avo-select-trigger:hover,
.page-home .search-grid .avo-search-select-input:hover,
.page-home .search-grid .price-range-trigger:hover {
    border-color: rgba(190,151,255,.28);
    background: rgba(255,255,255,.075);
}
.page-home .search-grid .avo-select-trigger-value,
.page-home .search-grid .price-range-trigger [data-price-range-label] {
    color: #f1edf8;
}
.page-home .search-grid .avo-select-chevron,
.page-home .search-grid .avo-search-select-chevron,
.page-home .search-grid .price-range-trigger-chevron { color: #8f879b; }
.page-home .price-range-trigger-icon {
    background: rgba(146,91,255,.12);
    color: #a878ff;
    box-shadow: none;
}
.search-card-v30 .search-submit {
    height: auto;
    min-height: 78px;
    align-self: stretch;
    gap: 8px;
    border: 1px solid rgba(220,190,255,.26);
    border-radius: 15px;
    background: var(--avo30-gradient);
    box-shadow: 0 14px 34px rgba(112, 60, 239, .27), inset 0 1px 0 rgba(255,255,255,.18);
    transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.search-card-v30 .search-submit:hover {
    transform: translateY(-1px);
    filter: brightness(1.06);
    box-shadow: 0 18px 40px rgba(112,60,239,.34);
}

.hero-bottom-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 17px;
}
.category-pills-v30 { margin-top: 0; gap: 7px; }
.category-pills-v30 a {
    padding: 9px 12px;
    border-color: rgba(224,205,255,.11);
    color: #a9a1b5;
    background: rgba(255,255,255,.035);
    font-size: 11px;
    font-weight: 650;
    backdrop-filter: blur(10px);
}
.category-pills-v30 a:hover {
    color: #fff;
    border-color: rgba(180,139,255,.25);
    background: rgba(135,81,246,.13);
}
.category-pills-v30 a .ui-icon { color: #9270bb; }
.hero-mini-stats {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    color: #867f91;
}
.hero-mini-stats > div {
    display: flex;
    align-items: baseline;
    gap: 7px;
    padding: 0 15px;
    border-left: 1px solid rgba(255,255,255,.08);
}
.hero-mini-stats strong { color: #d8c7ed; font-size: 16px; }
.hero-mini-stats span { font-size: 10px; }

/* Dark premium content area. */
.page-home .home-dark-section,
.page-home .market-section-v30 {
    position: relative;
    z-index: 1;
    background: var(--avo30-bg);
}
.page-home .home-dark-section { padding: 92px 0 60px; }
.section-heading-v30 {
    align-items: end;
    margin-bottom: 32px;
}
.section-kicker {
    display: block;
    margin-bottom: 10px;
    color: #8f67cb;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
}
.page-home .section-heading-v30 h2,
.page-home .market-copy h2 {
    color: #f7f4fb;
    font-size: clamp(30px, 3vw, 42px);
}
.page-home .section-heading-v30 p,
.page-home .market-copy p { color: #85808e; }
.page-home .text-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #b895ee;
    font-size: 12px;
}
.page-home .text-link .link-arrow {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgba(190,151,255,.18);
    border-radius: 50%;
}
.listing-grid-v30 { gap: 16px; }
.page-home .listing-card {
    border-color: rgba(221,202,246,.10);
    border-radius: 20px;
    color: #f5f2fa;
    background: linear-gradient(180deg, rgba(24,21,34,.96), rgba(16,14,24,.98));
    box-shadow: 0 14px 36px rgba(0,0,0,.16);
}
.page-home .listing-card::after { display: none; }
.page-home .listing-card:hover {
    transform: translateY(-4px);
    border-color: rgba(180,139,255,.22);
    box-shadow: 0 22px 54px rgba(0,0,0,.28), 0 0 0 1px rgba(136,86,246,.05);
}
.page-home .listing-photo { aspect-ratio: 16/10.5; background: #17131f; }
.page-home .listing-photo::after {
    content: '';
    position: absolute;
    inset: 55% 0 0;
    pointer-events: none;
    background: linear-gradient(180deg, transparent, rgba(8,7,13,.34));
}
.page-home .listing-tag {
    color: #24182e;
    background: rgba(247,241,255,.94);
    box-shadow: none;
}
.page-home .listing-tag.rent { color: #315f59; }
.page-home .heart {
    z-index: 2;
    color: #e9ddf8;
    background: rgba(14,12,22,.70);
    border: 1px solid rgba(255,255,255,.15);
    backdrop-filter: blur(10px);
    box-shadow: none;
}
.page-home .heart.active { color: #d89aff; background: rgba(91,49,149,.56); }
.page-home .listing-body { padding: 18px 18px 19px; }
.page-home .listing-price { color: #fff; font-size: 22px; }
.page-home .listing-price small,
.page-home .listing-price-equivalent,
.page-home .listing-body p { color: #827b8c; }
.page-home .listing-body h3 { color: #ddd7e5; font-weight: 650; }
.page-home .listing-location { color: #8d8499; }
.page-home .listing-location .ui-icon { color: #9367cd; }

.market-section-v30 { padding: 42px 0 100px; }
.market-panel-v30 {
    position: relative;
    overflow: hidden;
    grid-template-columns: .95fr 1.25fr;
    gap: 70px;
    padding: 48px;
    border: 1px solid rgba(216,196,255,.12);
    border-radius: 28px;
    background:
        radial-gradient(circle at 80% 8%, rgba(126,67,248,.18), transparent 34%),
        linear-gradient(135deg, #15121f 0%, #11101a 56%, #101522 100%);
    box-shadow: 0 34px 90px rgba(0,0,0,.22);
}
.market-panel-v30::before {
    content: '';
    position: absolute;
    right: -120px;
    bottom: -180px;
    width: 520px;
    height: 520px;
    border: 1px solid rgba(195,159,255,.08);
    border-radius: 50%;
    box-shadow: 0 0 0 70px rgba(195,159,255,.022), 0 0 0 140px rgba(195,159,255,.015);
}
.page-home .market-copy,
.page-home .stats-grid-v30 { position: relative; z-index: 1; }
.page-home .market-copy .eyebrow.purple {
    color: #ba93f1;
    border: 1px solid rgba(177,126,248,.16);
    background: rgba(143,79,236,.08);
}
.market-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 22px;
    color: #c6a7f1;
    font-size: 12px;
    font-weight: 700;
}
.market-cta span { font-size: 18px; }
.stats-grid-v30 { gap: 10px; }
.page-home .stats-grid-v30 > div {
    min-height: 166px;
    padding: 22px;
    border: 1px solid rgba(217,196,246,.09);
    border-radius: 18px;
    background: rgba(255,255,255,.035);
    backdrop-filter: blur(9px);
}
.page-home .stats-grid-v30 strong { color: #f7f3fb; font-size: 25px; }
.page-home .stats-grid-v30 > div > span:last-child { color: #827b8d; }
.stat-icon {
    width: 34px;
    height: 34px;
    display: grid !important;
    place-items: center;
    margin-bottom: 17px !important;
    border: 1px solid rgba(190,151,255,.15);
    border-radius: 10px;
    color: #ad7eff !important;
    background: rgba(131,76,238,.08);
}
.stat-icon .ui-icon { width: 16px; height: 16px; }

.page-home .site-footer {
    margin-top: 0;
    border-top: 1px solid rgba(216,196,255,.08);
    background: #08080e;
}
.page-home .site-footer p { color: #716c78; }
.page-home .footer-links { color: #8f879b; }
.page-home .footer-copy { color: #5e5965; }

/* Homepage dropdowns remain light for readability, but inherit the new accent. */
.page-home .avo-select-menu,
.page-home .avo-search-select-menu,
.page-home .price-range-popover {
    border-color: rgba(150,107,192,.20);
    box-shadow: 0 28px 72px rgba(0,0,0,.34);
}

@media (max-width: 1180px) {
    .page-home .header-inner { gap: 13px; }
    .page-home .main-nav { gap: 12px; font-size: 12px; }
    .page-home .main-nav > a .ui-icon { display: none; }
    .hero-v30 h1 { max-width: 700px; }
}

@media (max-width: 980px) {
    .page-home .container { width: min(100% - 32px, 1320px); }
    .page-home .site-header { top: 20px; }
    .page-home .header-inner { min-height: 64px; padding-inline: 13px; }
    .brand-v30 .brand-mark { width: 39px; height: 39px; }
    .brand-wordmark { font-size: 21px; }
    .page-home .menu-toggle { order: 3; display: block; color: #ded5ea; font-size: 23px; }
    .page-home .language-switch { margin-left: auto; order: 2; }
    .page-home .main-nav {
        top: 72px;
        left: 0;
        right: 0;
        padding: 13px;
        border: 1px solid rgba(216,196,255,.12);
        border-radius: 16px;
        background: rgba(12,10,19,.97);
        backdrop-filter: blur(20px);
    }
    .page-home .main-nav > a .ui-icon { display: inline-block; }
    .hero-v30 { min-height: 850px; background-position: 69% center; }
    .hero-v30 .hero-content { padding-top: 145px; }
    .hero-v30 h1 { font-size: clamp(46px, 7vw, 68px); }
    .search-card-v30 .search-grid { grid-template-columns: 1fr 1fr; }
    .search-card-v30 .search-submit { min-height: 62px; }
    .hero-bottom-row { align-items: flex-start; flex-direction: column; }
    .hero-mini-stats { display: none; }
    .page-home .listing-grid { grid-template-columns: 1fr 1fr; }
    .market-panel-v30 { grid-template-columns: 1fr; gap: 30px; padding: 36px; }
}

@media (max-width: 640px) {
    .page-home .container { width: min(100% - 22px, 1320px); }
    .page-home .site-header { top: 18px; }
    .page-home .header-inner { min-height: 58px; padding: 0 9px 0 11px; border-radius: 15px; }
    .brand-v30 { gap: 7px; }
    .brand-v30 .brand-mark { width: 34px; height: 34px; }
    .brand-wordmark { font-size: 18px; }
    .page-home .language-switch a { min-width: 28px; height: 28px; font-size: 9px; }
    .page-home .menu-toggle { padding: 0 4px; }
    .hero-v30 {
        min-height: 900px;
        background-position: 72% center;
        background-size: cover;
        overflow: hidden;
    }
    .hero-v30:has(.avo-select.is-open),
    .hero-v30:has(.avo-search-select.is-open),
    .hero-v30:has(.price-range.is-open) { overflow: visible; }
    .hero-v30 .hero-overlay {
        background: linear-gradient(180deg, rgba(7,7,14,.40) 0%, rgba(7,7,14,.63) 43%, #090911 95%);
    }
    .hero-v30 .hero-content { padding-top: 123px; padding-bottom: 48px; }
    .hero-eyebrow { font-size: 8px; letter-spacing: .10em; }
    .hero-v30 h1 {
        margin-top: 18px;
        font-size: clamp(42px, 13vw, 59px);
        line-height: .98;
    }
    .hero-v30 .hero-copy p { font-size: 15px; line-height: 1.55; }
    .hero-city-row { margin-top: 18px; }
    .search-card-v30 { margin-top: 30px; padding: 10px; border-radius: 18px; }
    .search-card-topline { padding-bottom: 8px; }
    .search-card-caption { display: none; }
    .search-card-v30 .deal-tab { min-width: 76px; padding: 8px 13px; }
    .search-card-v30 .search-grid { grid-template-columns: 1fr; gap: 7px; }
    .search-card-v30 .search-grid > label { padding: 8px 9px 9px; }
    .search-card-v30 .search-submit { min-height: 52px; border-radius: 13px; }
    .hero-bottom-row { margin-top: 13px; }
    .category-pills-v30 { flex-wrap: nowrap; width: 100%; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; }
    .category-pills-v30::-webkit-scrollbar { display: none; }
    .category-pills-v30 a { flex: 0 0 auto; }
    .page-home .home-dark-section { padding: 64px 0 36px; }
    .section-heading-v30 { align-items: flex-start; flex-direction: column; gap: 17px; margin-bottom: 24px; }
    .page-home .listing-grid { grid-template-columns: 1fr; }
    .page-home .listing-card:last-child { display: block; }
    .market-section-v30 { padding: 24px 0 70px; }
    .market-panel-v30 { padding: 24px; border-radius: 22px; }
    .page-home .stats-grid-v30 { grid-template-columns: 1fr; }
    .page-home .stats-grid-v30 > div { min-height: 118px; }
    .page-home .site-footer { padding-top: 34px; }
}

/* ===== AVO.GE 2.0 · Stage 30.1 · Light homepage content =====
 * Keep the new dark premium hero/header, but return the main site canvas
 * below the hero to the same light visual environment as inner pages.
 */
.page-home {
    background: #f7f6f8;
    color: #29212d;
}

/* The hero remains the only large dark zone on the homepage. */
.page-home .hero-v30 {
    background-color: #090911;
}

/* Light content canvas below the hero. */
.page-home .home-dark-section,
.page-home .market-section-v30 {
    background:
        radial-gradient(circle at 15% 5%, rgba(137, 91, 171, .055), transparent 28%),
        radial-gradient(circle at 88% 12%, rgba(111, 142, 170, .045), transparent 26%),
        #f7f6f8;
}
.page-home .home-dark-section {
    padding: 92px 0 60px;
}

.page-home .section-kicker {
    color: #80528f;
}
.page-home .section-heading-v30 h2,
.page-home .market-copy h2 {
    color: #211a25;
}
.page-home .section-heading-v30 p,
.page-home .market-copy p {
    color: #7f7584;
}
.page-home .text-link {
    color: #704879;
}
.page-home .text-link .link-arrow {
    color: #71477b;
    border-color: rgba(113, 71, 123, .16);
    background: rgba(255,255,255,.72);
}
.page-home .text-link:hover .link-arrow {
    border-color: rgba(113, 71, 123, .30);
    background: #fff;
}

/* Premium cards on a light site instead of dark cards. */
.page-home .listing-card {
    border-color: rgba(76, 58, 83, .10);
    color: #29212d;
    background: rgba(255,255,255,.96);
    box-shadow: 0 16px 42px rgba(45, 34, 50, .075);
}
.page-home .listing-card:hover {
    transform: translateY(-4px);
    border-color: rgba(126, 81, 147, .22);
    box-shadow: 0 24px 56px rgba(45, 34, 50, .13);
}
.page-home .listing-photo {
    background: #ece8ef;
}
.page-home .listing-photo::after {
    background: linear-gradient(180deg, transparent, rgba(28,20,31,.12));
}
.page-home .listing-tag {
    color: #56315f;
    background: rgba(255,255,255,.94);
    box-shadow: 0 5px 16px rgba(35,27,39,.09);
}
.page-home .listing-tag.rent {
    color: #37635d;
}
.page-home .heart {
    color: #6e5576;
    background: rgba(255,255,255,.92);
    border-color: rgba(78, 60, 85, .12);
    box-shadow: 0 5px 16px rgba(35,27,39,.08);
}
.page-home .heart.active {
    color: #fff;
    background: linear-gradient(135deg,#8b59a2,#6f8eaa);
}
.page-home .listing-price {
    color: #241d28;
}
.page-home .listing-price small,
.page-home .listing-price-equivalent,
.page-home .listing-body p {
    color: #8a7f8e;
}
.page-home .listing-body h3 {
    color: #302735;
}
.page-home .listing-location {
    color: #867a8a;
}
.page-home .listing-location .ui-icon {
    color: #86599a;
}

/* Light data block, still using the Stage 30 identity. */
.page-home .market-section-v30 {
    padding: 42px 0 100px;
}
.page-home .market-panel-v30 {
    border-color: rgba(91, 70, 101, .10);
    background:
        radial-gradient(circle at 84% 4%, rgba(149, 98, 189, .11), transparent 34%),
        radial-gradient(circle at 18% 100%, rgba(112, 142, 170, .08), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(250,248,252,.98));
    box-shadow: 0 26px 68px rgba(45,34,50,.085);
}
.page-home .market-panel-v30::before {
    border-color: rgba(130, 83, 151, .055);
    box-shadow: 0 0 0 70px rgba(130,83,151,.018), 0 0 0 140px rgba(130,83,151,.012);
}
.page-home .market-copy .eyebrow.purple {
    color: #754b84;
    border-color: rgba(117,75,132,.13);
    background: rgba(117,75,132,.055);
}
.page-home .market-cta {
    color: #724780;
}
.page-home .stats-grid-v30 > div {
    border-color: rgba(91,70,101,.09);
    background: rgba(255,255,255,.74);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.page-home .stats-grid-v30 strong {
    color: #29212d;
}
.page-home .stats-grid-v30 > div > span:last-child {
    color: #85798a;
}
.page-home .stat-icon {
    color: #815494 !important;
    border-color: rgba(129,84,148,.13);
    background: rgba(129,84,148,.055);
}

/* A clean visual handoff from the dark hero to the light site. */
.page-home .hero-v30 + .home-dark-section {
    border-top: 1px solid rgba(73,57,80,.055);
}

@media (max-width: 640px) {
    .page-home .home-dark-section {
        padding: 64px 0 36px;
    }
    .page-home .market-section-v30 {
        padding: 24px 0 70px;
    }
}

/* ===== AVO.GE 2.0 · Stage 30.2 · Unified premium navigation + light hero search ===== */

/*
 * One brand, one navigation language.
 * On desktop the dark floating navigation is fixed across the whole site.
 * Inner pages keep their light canvas; the header itself is the dark brand anchor.
 */
@media (min-width: 981px) {
    .page-home .site-header,
    .site-header--inner {
        position: fixed;
        z-index: 90;
        top: 18px;
        left: 0;
        right: 0;
        color: #fff;
        background: transparent;
        box-shadow: none;
    }

    .page-home .site-header .container,
    .site-header--inner .container {
        width: min(1320px, calc(100% - 56px));
    }

    .page-home .site-header .header-inner,
    .site-header--inner .header-inner {
        min-height: 68px;
        padding: 0 12px 0 16px;
        gap: 20px;
        border: 1px solid rgba(255,255,255,.105);
        border-radius: 18px;
        background:
            radial-gradient(circle at 22% -70%, rgba(150,91,255,.14), transparent 42%),
            rgba(11,10,20,.91);
        box-shadow:
            0 18px 52px rgba(13,9,22,.20),
            0 4px 14px rgba(13,9,22,.12),
            inset 0 1px 0 rgba(255,255,255,.045);
        backdrop-filter: blur(22px) saturate(135%);
        -webkit-backdrop-filter: blur(22px) saturate(135%);
    }

    .site-header--inner + main {
        min-height: 55vh;
        padding-top: 106px;
    }

    .page-home .main-nav,
    .site-header--inner .main-nav {
        gap: 19px;
        font-size: 13px;
        font-weight: 650;
    }

    .page-home .main-nav > a:not(.add-btn),
    .site-header--inner .main-nav > a:not(.add-btn) {
        position: relative;
        color: rgba(255,255,255,.76);
        opacity: 1;
    }

    .page-home .main-nav > a:not(.add-btn):hover,
    .site-header--inner .main-nav > a:not(.add-btn):hover,
    .page-home .main-nav > a.is-active:not(.add-btn),
    .site-header--inner .main-nav > a.is-active:not(.add-btn) {
        color: #fff;
    }

    .page-home .main-nav > a.is-active:not(.add-btn)::after,
    .site-header--inner .main-nav > a.is-active:not(.add-btn)::after {
        content: '';
        position: absolute;
        left: 50%;
        bottom: 1px;
        width: 20px;
        height: 2px;
        border-radius: 999px;
        transform: translateX(-50%);
        background: linear-gradient(90deg, #8a5cff, #d49bff);
        box-shadow: 0 0 12px rgba(155,93,255,.42);
    }

    .page-home .main-nav > a .ui-icon,
    .site-header--inner .main-nav > a .ui-icon {
        color: #b9acc9;
        opacity: .92;
    }

    .page-home .add-btn,
    .site-header--inner .add-btn {
        min-height: 42px;
        padding: 0 16px;
        border: 1px solid rgba(225,198,255,.25);
        border-radius: 12px;
        color: #fff;
        background: linear-gradient(135deg, #7650ff 0%, #9c55ff 50%, #c67dff 100%);
        box-shadow: 0 10px 28px rgba(112,65,238,.25), inset 0 1px 0 rgba(255,255,255,.16);
    }

    .page-home .add-btn:hover,
    .site-header--inner .add-btn:hover {
        filter: brightness(1.06);
        transform: translateY(-1px);
    }

    .page-home .language-switch,
    .site-header--inner .language-switch {
        padding: 3px;
        border-color: rgba(255,255,255,.12);
        border-radius: 11px;
        background: rgba(255,255,255,.045);
    }

    .page-home .language-switch a,
    .site-header--inner .language-switch a {
        min-width: 34px;
        height: 32px;
    }

    .page-home .language-switch a.active,
    .site-header--inner .language-switch a.active {
        color: #17111f;
        background: #f4effc;
        box-shadow: 0 3px 10px rgba(0,0,0,.10);
    }
}

/*
 * The search is deliberately light. It becomes the visual bridge between
 * the dark editorial hero and the light real-estate catalogue below.
 */
.page-home .search-card-v30 {
    color: #2b2430;
    border-color: rgba(75,56,83,.10);
    background: rgba(255,255,255,.965);
    box-shadow:
        0 28px 75px rgba(12,8,18,.25),
        0 8px 22px rgba(12,8,18,.10),
        inset 0 1px 0 rgba(255,255,255,.96);
    backdrop-filter: blur(24px) saturate(118%);
    -webkit-backdrop-filter: blur(24px) saturate(118%);
}

.page-home .search-card-v30 .deal-tabs {
    padding: 3px;
    border: 1px solid #ebe6ef;
    border-radius: 12px;
    background: #f4f1f6;
}

.page-home .search-card-v30 .deal-tab {
    color: #776e7d;
    background: transparent;
    transition: color .18s ease, background .18s ease, box-shadow .18s ease;
}

.page-home .search-card-v30 .deal-tab:hover {
    color: #51385a;
}

.page-home .search-card-v30 .deal-tab.active {
    color: #fff;
    background: linear-gradient(135deg, #7b50d9 0%, #9b5ce5 100%);
    box-shadow: 0 5px 14px rgba(114,71,178,.22), inset 0 1px 0 rgba(255,255,255,.16);
}

.page-home .search-card-caption {
    color: #8a7f90;
}
.page-home .search-card-caption .ui-icon {
    color: #8754bd;
}

.page-home .search-card-v30 .search-grid > label {
    border-color: #eee9f1;
    background: #faf8fb;
}

.page-home .search-card-v30 .search-grid > label > span {
    color: #84798a;
}

.page-home .search-grid .avo-select-trigger,
.page-home .search-grid .avo-search-select-input,
.page-home .search-grid .price-range-trigger,
.page-home .search-grid select {
    border-color: #e2dce6;
    color: #312a36;
    background: #fff;
    box-shadow: 0 1px 0 rgba(255,255,255,.8), inset 0 1px 2px rgba(35,25,39,.015);
}

.page-home .search-grid .avo-select-trigger:hover,
.page-home .search-grid .avo-search-select-input:hover,
.page-home .search-grid .price-range-trigger:hover {
    border-color: #cdbbd6;
    background: #fff;
}

.page-home .search-grid .avo-select-trigger:focus,
.page-home .search-grid .avo-search-select-input:focus,
.page-home .search-grid .price-range-trigger:focus-visible {
    border-color: #a982bc;
    box-shadow: 0 0 0 3px rgba(135,84,168,.10);
}

.page-home .search-grid .avo-select-trigger-value,
.page-home .search-grid .price-range-trigger [data-price-range-label] {
    color: #312a36;
}

.page-home .search-grid .avo-select-chevron,
.page-home .search-grid .avo-search-select-chevron,
.page-home .search-grid .price-range-trigger-chevron {
    color: #8e8393;
}

.page-home .price-range-trigger-icon {
    color: #81529a;
    background: #f1eaf5;
}

.page-home .search-card-v30 .search-submit {
    border-color: rgba(114,72,150,.16);
    color: #fff;
    background: linear-gradient(135deg, #754bd6 0%, #9252e3 52%, #b66af0 100%);
    box-shadow: 0 14px 32px rgba(111,64,169,.25), inset 0 1px 0 rgba(255,255,255,.20);
}

.page-home .search-card-v30 .search-submit:hover {
    filter: brightness(1.045);
    box-shadow: 0 18px 38px rgba(111,64,169,.31), inset 0 1px 0 rgba(255,255,255,.22);
}

/* On tablet/mobile keep normal document flow, but remove the old brown/blue header mood. */
@media (max-width: 980px) {
    .site-header--inner {
        background:
            radial-gradient(circle at 18% 0, rgba(142,79,235,.17), transparent 38%),
            linear-gradient(125deg, #0d0b16 0%, #191326 58%, #111522 100%);
        box-shadow: 0 1px 0 rgba(255,255,255,.06), 0 10px 28px rgba(16,11,24,.16);
    }

    .site-header--inner .header-inner {
        min-height: 78px;
        padding-top: 4px;
    }

    .site-header--inner .main-nav {
        border: 1px solid rgba(216,196,255,.12);
        background: rgba(12,10,19,.98);
        backdrop-filter: blur(20px);
    }
}

@media (max-width: 640px) {
    .page-home .search-card-v30 {
        padding: 11px;
    }

    .page-home .search-card-v30 .deal-tabs {
        width: fit-content;
    }
}


/* ===== AVO.GE 2.0 · Stage 30.3 · Header motion ===== */
/*
 * Desktop navigation keeps the relaxed 18px breathing room on the first screen.
 * Once the page starts moving it glides 10px upward and settles closer to the
 * browser edge. No resizing is used, so navigation never jumps horizontally.
 */
@media (min-width: 981px) {
    .page-home .site-header,
    .site-header--inner {
        transition: top .26s cubic-bezier(.22,.72,.24,1);
        will-change: top;
    }

    .page-home .site-header .header-inner,
    .site-header--inner .header-inner {
        transition:
            background-color .26s ease,
            border-color .26s ease,
            box-shadow .26s ease;
    }

    .page-home .site-header.is-scrolled,
    .site-header--inner.is-scrolled {
        top: 8px;
    }

    .page-home .site-header.is-scrolled .header-inner,
    .site-header--inner.is-scrolled .header-inner {
        border-color: rgba(255,255,255,.13);
        background:
            radial-gradient(circle at 22% -70%, rgba(150,91,255,.15), transparent 42%),
            rgba(10,9,18,.955);
        box-shadow:
            0 18px 48px rgba(13,9,22,.24),
            0 5px 16px rgba(13,9,22,.16),
            inset 0 1px 0 rgba(255,255,255,.055);
    }
}

@media (prefers-reduced-motion: reduce) {
    .page-home .site-header,
    .site-header--inner,
    .page-home .site-header .header-inner,
    .site-header--inner .header-inner {
        transition: none !important;
    }
}

/* ===== AVO.GE 2.0 · Stage 30.4 · Header edge dock ===== */
/*
 * At rest the desktop navigation floats 10px below the browser edge.
 * After scrolling it docks completely to the top. The 10px travel keeps
 * the subtle motion from Stage 30.3 while making the sticky state obvious.
 */
@media (min-width: 981px) {
    .page-home .site-header,
    .site-header--inner {
        top: 10px;
    }

    .page-home .site-header.is-scrolled,
    .site-header--inner.is-scrolled {
        top: 0;
    }
}


/* ===== AVO.GE 2.0 · Stage 31 · Paid promotion rebuilt ===== */

/* Public cards: each paid product has one clear job.
   VIP = ranking, Highlight = visual treatment, Raise = temporary bump. */
.listing-card--vip {
    position:relative;
    border:2px solid #7d4cff !important;
    box-shadow:0 18px 46px rgba(102,58,220,.18),0 0 0 1px rgba(175,135,255,.13);
}
.listing-card--vip::before {
    content:"";
    position:absolute;
    z-index:4;
    left:0; right:0; top:0;
    height:4px;
    background:linear-gradient(90deg,#6d36ff,#a75cff 52%,#d8b3ff);
}
.listing-card--highlight {
    border:2px solid #bd91ff !important;
    background:linear-gradient(145deg,#fff 0%,#faf5ff 38%,#f2eaff 100%) !important;
    box-shadow:0 18px 46px rgba(119,76,177,.16),0 0 0 5px rgba(174,126,244,.045);
}
.listing-card--highlight .listing-body {
    background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(245,237,255,.96));
}
.listing-card--vip.listing-card--highlight {
    border-color:#8d52ff !important;
    box-shadow:0 22px 58px rgba(103,54,221,.25),0 0 0 6px rgba(167,102,255,.06);
}
.listing-card--premium {
    border:2px solid #8d6aa5 !important;
    box-shadow:0 16px 40px rgba(94,64,111,.14);
}
.listing-promo-tags {
    position:absolute;
    z-index:7;
    left:14px;
    top:52px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    pointer-events:none;
}
.listing-promo-tags .listing-promo-tag {
    position:static;
    min-height:29px;
    box-shadow:0 7px 20px rgba(31,21,42,.18);
}
.listing-promo-tag--vip {
    background:linear-gradient(135deg,#5d27da,#8d4cff 58%,#be82ff) !important;
}
.listing-promo-tag--highlight {
    color:#3f235d !important;
    background:linear-gradient(135deg,#f4e8ff,#d7b7ff 55%,#c693ff) !important;
    border:1px solid rgba(113,57,170,.16);
}
.listing-promo-tag--raise {
    background:linear-gradient(135deg,#536779,#7a94aa) !important;
}
.listing-promo-tag--premium {
    background:linear-gradient(135deg,#73507e,#9b739e 55%,#718fa9) !important;
}

/* Promotions are visible inside the owner's account, not hidden behind a modal. */
.account-real-listing.has-promotions {
    border-color:rgba(126,78,170,.22);
    box-shadow:0 12px 34px rgba(90,61,106,.08);
}
.account-promo-badges {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:1px 0 2px;
}
.account-promo-badge {
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-height:27px;
    padding:0 9px;
    border-radius:999px;
    font-size:10.5px;
    line-height:1;
    font-weight:700;
    white-space:nowrap;
}
.account-promo-badge .ui-icon { width:13px;height:13px; }
.account-promo-badge b { font:inherit; }
.account-promo-badge small { color:inherit!important; opacity:.72; font-size:9.5px!important; }
.account-promo-badge--vip {
    color:#fff;
    background:linear-gradient(135deg,#632dda,#9854ff);
    box-shadow:0 6px 15px rgba(104,51,200,.18);
}
.account-promo-badge--highlight {
    color:#563076;
    background:linear-gradient(135deg,#f3e8ff,#d7b9ff);
    border:1px solid rgba(122,71,171,.13);
}
.account-promo-badge--raise { color:#435567;background:#e8eff5; }
.account-promo-badge--premium { color:#fff;background:linear-gradient(135deg,#77577f,#8c7898); }

/* New promotion center. */
.promotion-modal-v31 .promotion-modal-backdrop {
    background:rgba(17,13,24,.66);
    backdrop-filter:blur(9px);
}
.promotion-modal-card-v31 {
    width:min(880px,100%);
    max-height:min(850px,calc(100vh - 36px));
    padding:28px;
    border-radius:28px;
    background:linear-gradient(145deg,#fff 0%,#fbf9fd 64%,#f4eff8 100%);
    box-shadow:0 38px 120px rgba(17,12,24,.35);
}
.promotion-modal-head-v31 { align-items:center; margin-bottom:16px; }
.promotion-modal-kicker {
    display:block;
    margin-bottom:4px;
    color:#8752a1;
    font-size:10px;
    font-weight:700;
    letter-spacing:.13em;
    text-transform:uppercase;
}
.promotion-modal-head-v31 h2 { font-size:27px;letter-spacing:-.025em; }
.promotion-modal-head-v31 p { max-width:620px;font-size:13.5px; }
.promotion-modal-listing {
    display:grid;
    grid-template-columns:88px minmax(0,1fr);
    align-items:center;
    gap:14px;
    margin:13px 0 14px;
    padding:10px;
    border:1px solid rgba(92,70,102,.09);
    border-radius:17px;
    background:#fff;
}
.promotion-modal-listing > img {
    width:88px;height:64px;object-fit:cover;border-radius:12px;background:#eee8f2;
}
.promotion-modal-listing > div { display:grid;gap:4px;min-width:0; }
.promotion-modal-listing strong { font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.promotion-modal-listing span { color:#837787;font-size:11.5px; }
.promotion-modal-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0 0 14px;
}
.promotion-modal-toolbar .promotion-modal-balance {
    flex:0 0 245px;
    margin:0;
    padding:11px 14px;
}
.promotion-combine-hint {
    display:inline-flex;align-items:center;gap:7px;
    color:#65566c;font-size:11.5px;font-weight:700;
}
.promotion-combine-hint .ui-icon { width:16px;height:16px;color:#7e4ba0; }

.promotion-service-list-v31 { gap:11px; }
.promotion-service-card-v31 {
    position:relative;
    display:grid;
    grid-template-columns:24px 128px minmax(0,1fr);
    align-items:center;
    gap:14px;
    padding:12px 14px 12px 12px;
    border:1px solid rgba(89,66,99,.12);
    border-radius:20px;
    background:#fff;
    cursor:pointer;
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;
}
.promotion-service-card-v31:hover {
    transform:translateY(-1px);
    border-color:rgba(124,76,159,.28);
    box-shadow:0 12px 28px rgba(61,42,70,.08);
}
.promotion-service-card-v31.is-selected {
    border-color:#9d68e3;
    background:linear-gradient(135deg,#fff 0%,#fbf6ff 52%,#f3e9ff 100%);
    box-shadow:0 12px 34px rgba(111,61,163,.13),0 0 0 3px rgba(154,93,226,.065);
}
.promotion-service-card-v31.is-active {
    box-shadow:inset 4px 0 0 #7d4cb0;
}
.promotion-service-checkbox {
    appearance:none;
    width:22px;height:22px;
    border:1.5px solid #cfc4d4;
    border-radius:7px;
    background:#fff;
    cursor:pointer;
    display:grid;
    place-items:center;
}
.promotion-service-checkbox:checked {
    border-color:#8a4fc2;
    background:linear-gradient(135deg,#7541ad,#9d63dc);
}
.promotion-service-checkbox:checked::after {
    content:"";
    width:9px;height:5px;
    border-left:2px solid #fff;
    border-bottom:2px solid #fff;
    transform:rotate(-45deg) translateY(-1px);
}
.promotion-service-visual {
    display:grid;
    place-items:center;
    width:128px;height:86px;
    overflow:hidden;
    border-radius:14px;
    background:#100d1a;
}
.promotion-service-visual img { width:100%;height:100%;object-fit:cover;display:block; }
.promotion-service-info { display:grid;gap:5px;min-width:0; }
.promotion-service-eyebrow {
    color:#907599;
    font-size:9.5px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.promotion-service-title-row { display:flex;align-items:baseline;justify-content:space-between;gap:10px; }
.promotion-service-title-row strong { color:#2e2632;font-size:18px;letter-spacing:-.015em; }
.promotion-service-title-row b { color:#6d3b8e;font-size:18px;white-space:nowrap; }
.promotion-service-description { color:#746a77;font-size:12px;line-height:1.45; }
.promotion-service-effect {
    justify-self:start;
    padding:5px 8px;
    border-radius:8px;
    color:#68417f;
    background:#f2e9f7;
    font-size:10.5px;
    font-weight:700;
}
.promotion-service-meta { color:#8d838f;font-size:10.5px; }
.promotion-service-active {
    color:#70438b!important;
    font-size:10.5px!important;
    font-weight:700!important;
}
.promotion-service-card-v31--vip.is-selected { border-color:#7e47d8; }
.promotion-service-card-v31--highlight.is-selected { border-color:#b078e0; }
.promotion-service-card-v31--raise.is-selected { border-color:#718fa8; }

.promotion-checkout {
    position:sticky;
    bottom:-28px;
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin:16px -28px -28px;
    padding:14px 28px 18px;
    border-top:1px solid rgba(91,67,101,.10);
    background:rgba(255,255,255,.96);
    box-shadow:0 -12px 28px rgba(44,30,51,.06);
    backdrop-filter:blur(14px);
}
.promotion-checkout-copy { display:flex;flex-wrap:wrap;gap:9px 17px; }
.promotion-checkout-copy span { color:#817585;font-size:10.5px; }
.promotion-checkout-copy b { font-weight:700; }
.promotion-checkout-copy strong { color:#362b3b;font-size:12px; }
.promotion-checkout-copy .is-negative { color:#b3424b; }
.promotion-checkout-actions { display:flex;align-items:center;gap:9px; }
.promotion-topup-link {
    min-height:42px;
    display:inline-flex;
    align-items:center;
    padding:0 13px;
    border-radius:12px;
    color:#714b82;
    background:#f2eaf5;
    font-size:11px;
    font-weight:700;
    text-decoration:none;
}
.promotion-buy-selected { min-width:205px;min-height:44px;justify-content:center; }
.promotion-buy-selected:disabled { opacity:.46;cursor:not-allowed;filter:grayscale(.1); }

/* Promotion preview on the add-listing page. No pre-paid intent rows are created. */
.promotion-intro-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.promotion-intro-item {
    overflow:hidden;
    border:1px solid rgba(96,71,107,.10);
    border-radius:18px;
    background:#fff;
}
.promotion-intro-item > img {
    width:100%;height:116px;display:block;object-fit:cover;background:#100d1a;
}
.promotion-intro-item > div { display:grid;gap:6px;padding:13px 14px 15px; }
.promotion-intro-item span { color:#8a6e94;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase; }
.promotion-intro-item strong { font-size:16px; }
.promotion-intro-item p { margin:0;color:#776d7a;font-size:11px;line-height:1.45; }
.promotion-intro-item small { color:#6f467f;font-size:10.5px;font-weight:700; }
.promotion-intro-note {
    display:flex;align-items:flex-start;gap:12px;
    margin-top:14px;padding:14px 15px;
    border-radius:15px;
    color:#5d4b64;
    background:linear-gradient(90deg,rgba(132,80,157,.085),rgba(111,148,178,.075));
}
.promotion-intro-note > .ui-icon { width:20px;height:20px;flex:0 0 20px;color:#8450a0; }
.promotion-intro-note strong { display:block;margin-bottom:3px;font-size:12px; }
.promotion-intro-note p { margin:0;font-size:11px;line-height:1.5;color:#7c6f80; }

@media(max-width:760px){
    .promotion-modal-card-v31 { padding:20px 14px 16px; }
    .promotion-modal-toolbar { align-items:stretch;flex-direction:column; }
    .promotion-modal-toolbar .promotion-modal-balance { flex:auto;width:100%; }
    .promotion-service-card-v31 { grid-template-columns:22px 92px minmax(0,1fr);gap:10px;padding:10px; }
    .promotion-service-visual { width:92px;height:72px; }
    .promotion-service-title-row { align-items:flex-start;flex-direction:column;gap:2px; }
    .promotion-service-title-row strong,.promotion-service-title-row b { font-size:15px; }
    .promotion-service-description { font-size:10.5px; }
    .promotion-checkout {
        bottom:-16px;
        align-items:stretch;
        flex-direction:column;
        margin:14px -14px -16px;
        padding:12px 14px 16px;
    }
    .promotion-checkout-actions { width:100%; }
    .promotion-buy-selected { flex:1;min-width:0; }
    .promotion-intro-grid { grid-template-columns:1fr; }
    .promotion-intro-item { display:grid;grid-template-columns:112px 1fr; }
    .promotion-intro-item > img { width:112px;height:100%;min-height:132px; }
}


/* ===== AVO.GE 2.0 · Stage 31.1 · Real-estate photographic hero ===== */
/* One strong hero image, no carousel. Keep the property on the right and a calm reading zone on the left. */
.page-home .hero-v30 {
    background-image: url('/assets/avo35_2_20260817/img/hero-realestate.webp');
}
@media (min-width: 981px) {
    .page-home .hero-v30 { background-position: 63% center; }
}
@media (max-width: 980px) {
    .page-home .hero-v30 { background-position: 69% center; }
}
@media (max-width: 640px) {
    .page-home .hero-v30 { background-position: 73% center; background-size: cover; }
}

/* ===== AVO.GE 2.0 · Stage 31.2 · Responsive hero art direction =====
 * One visual concept, three prepared crops. The browser no longer enlarges
 * one landscape image aggressively on tablet/mobile. Each breakpoint gets
 * a composition made for its aspect ratio.
 */
.page-home .hero-v30 {
    background-image: url('/assets/avo35_2_20260817/img/hero-realestate-desktop.webp');
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
}

@media (max-width: 980px) {
    .page-home .hero-v30 {
        background-image: url('/assets/avo35_2_20260817/img/hero-realestate-tablet.webp');
        background-position: 56% center;
        background-size: cover;
    }
}

@media (max-width: 640px) {
    .page-home .hero-v30 {
        background-image: url('/assets/avo35_2_20260817/img/hero-realestate-mobile.webp');
        background-position: 58% center;
        background-size: cover;
    }
}

/* ===== AVO.GE 2.0 · Stage 32 · Guided listing wizard ===== */
.listing-form[data-listing-wizard="0"] .wizard-step-actions { display:none !important; }
.listing-form--wizard [data-wizard-step][hidden],
.listing-form--wizard [data-wizard-submit-zone][hidden] { display:none !important; }

.listing-assistant {
    position:relative;
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:18px;
    margin-bottom:18px;
    padding:20px 22px;
    overflow:hidden;
    border:1px solid rgba(116,76,145,.14);
    border-radius:22px;
    background:
        radial-gradient(circle at 95% 0%,rgba(151,92,216,.15),transparent 36%),
        linear-gradient(145deg,#fff 0%,#fbf9fd 62%,#f2f5fb 100%);
    box-shadow:0 18px 46px rgba(47,32,57,.07);
}
.listing-assistant::after {
    content:"";
    position:absolute;
    width:180px;height:180px;
    right:-72px;top:-100px;
    border:28px solid rgba(137,82,174,.035);
    border-radius:52px;
    transform:rotate(45deg);
    pointer-events:none;
}
.listing-assistant-icon {
    position:relative;z-index:1;
    width:58px;height:58px;
    display:grid;place-items:center;
    border-radius:18px;
    color:#fff;
    background:linear-gradient(145deg,#713ddf,#a559ef 62%,#7f9fd0);
    box-shadow:0 12px 26px rgba(120,67,182,.24);
}
.listing-assistant-icon .ui-icon { width:25px;height:25px; }
.listing-assistant-copy { position:relative;z-index:1;min-width:0; }
.listing-assistant-meta {
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    margin-bottom:6px;
    color:#856b90;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
}
.listing-assistant-draft { color:#8d8790;font-size:10px;font-weight:700;letter-spacing:0;text-transform:none; }
.listing-assistant h2 { margin:0 0 5px;font-size:21px;letter-spacing:-.025em;color:#28212d; }
.listing-assistant p { max-width:730px;margin:0;color:#746a78;font-size:13px;line-height:1.6; }
.listing-assistant-progress {
    height:4px;margin-top:15px;overflow:hidden;border-radius:999px;background:#ece7ef;
}
.listing-assistant-progress > span {
    display:block;height:100%;border-radius:inherit;
    background:linear-gradient(90deg,#8450a0,#a95bef,#7f9fd0);
    transition:width .28s ease;
}

.listing-form--wizard .form-card {
    margin-bottom:0;
    padding:30px;
    border-color:rgba(105,77,119,.13);
    box-shadow:0 18px 50px rgba(42,30,48,.055);
    scroll-margin-top:132px;
    animation:stage32WizardIn .22s ease both;
}
@keyframes stage32WizardIn {
    from { opacity:0;transform:translateY(8px); }
    to { opacity:1;transform:translateY(0); }
}
.listing-form--wizard .form-card-heading { margin-bottom:26px; }
.listing-form--wizard .step-number {
    width:38px;height:38px;flex-basis:38px;border-radius:12px;
    color:#fff;background:linear-gradient(145deg,#805294,#7e9fc0);
    box-shadow:0 8px 18px rgba(114,77,133,.15);
}

.wizard-step-actions {
    display:grid;
    grid-template-columns:minmax(110px,1fr) auto auto;
    align-items:center;
    gap:12px;
    margin-top:28px;
    padding-top:20px;
    border-top:1px solid rgba(113,85,125,.10);
}
.wizard-step-actions .wizard-next,
.wizard-step-actions .wizard-back { min-height:46px; }
.wizard-step-actions .wizard-next {
    min-width:168px;justify-content:center;gap:8px;
    box-shadow:0 10px 24px rgba(126,76,154,.16);
}
.wizard-step-actions .wizard-next .ui-icon { width:15px;height:15px; }
.wizard-step-actions .wizard-next.is-ready { box-shadow:0 12px 28px rgba(126,76,154,.24); }
.wizard-step-actions .wizard-back { justify-self:start;min-width:108px;justify-content:center; }
.wizard-step-actions--final { grid-template-columns:1fr; }
.wizard-optional { color:#9a919d;font-size:10.5px;font-weight:700;white-space:nowrap; }
.wizard-submit-zone { margin-top:16px;padding:18px 20px;border:1px solid rgba(111,78,128,.12);border-radius:18px;background:linear-gradient(145deg,#fff,#f8f5fa);box-shadow:0 14px 36px rgba(52,35,59,.05); }
.wizard-submit-zone .form-submit-row { padding:0; }

.add-sidebar--wizard .sidebar-card {
    background:linear-gradient(145deg,#20172d,#352044 58%,#30445a);
}
.add-sidebar--wizard .add-progress a { position:relative;padding-left:34px;transition:.18s ease; }
.add-sidebar--wizard .add-progress a::before {
    content:"";position:absolute;left:12px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#d9d2dd;box-shadow:0 0 0 4px #fff;
}
.add-sidebar--wizard .add-progress a.active { color:#604070;background:#f4eef7; }
.add-sidebar--wizard .add-progress a.active::before { background:#8752a0;box-shadow:0 0 0 4px #eadcf0; }
.add-sidebar--wizard .add-progress a.complete { color:#596b66; }
.add-sidebar--wizard .add-progress a.complete::before { background:#47a17c; }
.add-sidebar--wizard .add-progress a.locked { color:#b1aab3;cursor:default; }
.add-sidebar--wizard .add-progress a.locked::before { background:#e4dfe7; }

/* Price is one coherent control: value + currency + rental period. */
.field-block-price { grid-column:1 / -1; }
.listing-price-control {
    display:grid;
    grid-template-columns:minmax(0,1fr) 150px;
    overflow:visible;
    border:1px solid #d9d1df;
    border-radius:16px;
    background:#fff;
    transition:border-color .16s ease,box-shadow .16s ease;
}
.listing-price-control:focus-within { border-color:#9969b4;box-shadow:0 0 0 4px rgba(142,93,169,.10); }
.listing-price-input { position:relative;min-width:0; }
.listing-price-input input {
    width:100% !important;height:60px !important;
    padding:0 112px 0 18px !important;
    border:0 !important;border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    color:#271f2c;font-size:24px;font-weight:700;letter-spacing:-.02em;
}
.listing-price-symbol {
    position:absolute;z-index:2;left:17px;top:50%;transform:translateY(-50%);
    color:#75527f;font-size:19px;font-weight:700;pointer-events:none;
}
.listing-price-period {
    position:absolute;right:13px;top:50%;transform:translateY(-50%);
    padding:5px 8px;border-radius:999px;background:#f1eaf4;color:#744f82;
    font-size:10px;font-weight:700;white-space:nowrap;pointer-events:none;
}
.listing-price-control > select {
    width:100%;height:60px !important;
    border:0 !important;border-left:1px solid #e5dfe8 !important;border-radius:0 !important;
    padding:0 38px 0 17px !important;background:#faf8fc !important;
    color:#403548;font-weight:700;box-shadow:none !important;
}
.listing-form .field-invalid .listing-price-control { border-color:#d45762;box-shadow:0 0 0 3px rgba(202,66,77,.10); }

.description-safe-note {
    display:flex;align-items:flex-start;gap:9px;margin:11px 2px 0;
    color:#817685;font-size:11px;line-height:1.5;
}
.description-safe-note .ui-icon { width:16px;height:16px;flex:0 0 16px;margin-top:1px;color:#745184; }
.description-panels textarea { min-height:190px; }

@media (min-width:981px) {
    .add-sidebar--wizard { top:98px; }
}
@media (max-width:980px) {
    .listing-assistant { grid-template-columns:48px minmax(0,1fr);padding:17px; }
    .listing-assistant-icon { width:48px;height:48px;border-radius:15px; }
    .listing-assistant h2 { font-size:19px; }
    .add-sidebar--wizard .sidebar-card { display:none; }
    .add-sidebar--wizard .add-progress { padding:7px; }
    .add-sidebar--wizard .add-progress a { padding:9px 12px 9px 30px; }
}
@media (max-width:640px) {
    .listing-form--wizard .form-card { padding:21px 16px; }
    .listing-assistant { grid-template-columns:42px minmax(0,1fr);gap:12px;padding:15px;border-radius:18px; }
    .listing-assistant-icon { width:42px;height:42px;border-radius:13px; }
    .listing-assistant-icon .ui-icon { width:20px;height:20px; }
    .listing-assistant-meta { align-items:flex-start;flex-direction:column;gap:3px;margin-bottom:8px; }
    .listing-assistant-draft { display:none; }
    .listing-assistant h2 { font-size:18px; }
    .listing-assistant p { font-size:12px;line-height:1.5; }
    .wizard-step-actions { grid-template-columns:1fr 1fr;gap:9px; }
    .wizard-step-actions > div { order:1; }
    .wizard-step-actions .wizard-next { order:2;min-width:0;width:100%; }
    .wizard-step-actions .wizard-back { width:100%; }
    .wizard-optional { grid-column:1/-1;order:0; }
    .listing-price-control { grid-template-columns:minmax(0,1fr) 116px; }
    .listing-price-input input { height:56px !important;padding-right:94px !important;font-size:21px; }
    .listing-price-control > select { height:56px !important;padding-left:11px !important;font-size:12px; }
    .listing-price-period { right:8px;padding:4px 6px;font-size:9px; }
    .wizard-submit-zone { padding:15px; }
}
.listing-price-control > .avo-select {
    min-width:0;
    border-left:1px solid #e5dfe8;
    background:#faf8fc;
    border-radius:0 15px 15px 0;
}
.listing-price-control > .avo-select .avo-select-trigger {
    height:60px;min-height:60px;
    border:0;border-radius:0 15px 15px 0;
    padding:0 13px 0 17px;
    background:transparent;
    box-shadow:none;
    font-weight:700;
}
.listing-price-control > .avo-select .avo-select-menu { min-width:150px;right:0;left:auto; }
@media(max-width:640px){
    .listing-price-control > .avo-select .avo-select-trigger { height:56px;min-height:56px;padding-left:11px;font-size:12px; }
    .listing-price-control > .avo-select .avo-select-menu { min-width:130px; }
}

/* =========================================================
   Stage 33 - Identity & Verification
   ========================================================= */
.auth-page--identity{padding-top:92px;padding-bottom:110px}
.identity-auth-card{position:relative;overflow:hidden}
.identity-auth-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#6f3de8,#a74cff,#7ca7cd)}
.auth-logo--new img{width:150px;max-height:72px;object-fit:contain}
.social-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0 14px}
.social-auth-grid.compact{margin-top:14px}
.social-auth-btn{min-height:58px;border:1px solid rgba(66,48,78,.14);border-radius:16px;background:#fff;color:#28222d;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:11px;padding:10px 16px;font-weight:700;box-shadow:0 9px 24px rgba(47,34,58,.06);transition:.18s ease}
.social-auth-btn:hover{transform:translateY(-1px);box-shadow:0 13px 30px rgba(47,34,58,.10)}
.social-auth-btn svg{width:22px;height:22px}.social-auth-btn.facebook svg{color:#1877f2}.social-auth-btn>span:not(.social-provider-g){display:flex;flex-direction:column;line-height:1.15}.social-auth-btn small{font-size:.67rem;font-weight:700;color:#948a9b;margin-top:3px}
.social-auth-btn.is-disabled{opacity:.66;cursor:not-allowed;box-shadow:none}.social-auth-btn.is-disabled:hover{transform:none}
.social-provider-g{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;font-size:1.12rem;font-weight:700;color:#fff;background:conic-gradient(from -45deg,#4285f4 0 25%,#34a853 0 50%,#fbbc05 0 75%,#ea4335 0)}
.auth-divider{display:flex;align-items:center;gap:14px;color:#9b929f;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin:22px 0 18px}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#ece8ee;flex:1}
.legacy-login-caption{text-align:center;font-weight:700;color:#5c5062;margin:0 0 14px}
.identity-security-note,.email-benefit-note{display:flex;align-items:flex-start;gap:10px;padding:13px 15px;border-radius:15px;background:linear-gradient(135deg,rgba(127,74,185,.075),rgba(113,158,205,.075));color:#736879;font-size:.78rem;line-height:1.5}.identity-security-note svg,.email-benefit-note svg{width:19px;height:19px;flex:0 0 19px;color:#8557a8;margin-top:1px}
.email-benefit-note{margin-top:16px}
.phone-composite-input,.telegram-username-input{height:54px;border:1px solid #ddd5e2;background:#fff;border-radius:14px;display:flex;align-items:center;overflow:hidden;transition:.18s ease}.phone-composite-input:focus-within,.telegram-username-input:focus-within{border-color:#9868be;box-shadow:0 0 0 4px rgba(140,87,177,.10)}.phone-composite-input b,.telegram-username-input b{height:100%;display:flex;align-items:center;padding:0 15px;background:#f4eff7;border-right:1px solid #e2dbe6;color:#6e4b83;font-weight:700}.phone-composite-input input,.telegram-username-input input{border:0!important;box-shadow:none!important;border-radius:0!important;height:100%;flex:1;min-width:0;background:transparent!important;padding:0 14px!important;font-size:1rem}.phone-composite-input input:focus,.telegram-username-input input:focus{outline:0}
.verification-channel-fieldset{border:0;padding:0;margin:18px 0}.verification-channel-fieldset legend{display:flex;flex-direction:column;gap:3px;font-weight:700;margin-bottom:10px}.verification-channel-fieldset legend small{font-weight:500;color:#8b818f;font-size:.77rem}.verification-channel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.verification-channel{position:relative;min-height:92px;border:1px solid #e2dce6;border-radius:16px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:.18s ease}.verification-channel input{position:absolute;opacity:0;pointer-events:none}.verification-channel:has(input:checked){border-color:#9b60cb;background:linear-gradient(145deg,#fff,#f7f0fc);box-shadow:0 0 0 3px rgba(147,86,193,.10)}.verification-channel.disabled{opacity:.45;cursor:not-allowed}.verification-channel-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#f2edf5;color:#74488d}.verification-channel-icon svg{width:18px;height:18px}.verification-channel-icon.telegram{background:#e8f5fc;color:#229ed9}.verification-channel-icon.whatsapp{background:#eaf8ef;color:#249b53}.verification-channel-icon.sms{background:#f0ecf5;color:#77538e}.verification-channel strong{font-size:.82rem}.verification-channel small{font-size:.62rem;font-weight:700;color:#9c91a2;letter-spacing:.05em}
.registration-progress{height:30px;display:flex;align-items:center;gap:7px;margin:18px 0 20px}.registration-progress i{height:5px;border-radius:999px;background:#ece7ee;flex:1}.registration-progress i.active{background:linear-gradient(90deg,#8254a3,#9d68d5)}.registration-progress span{font-size:.7rem;color:#8d8393;font-weight:700;margin-left:7px}
.identity-step-heading{display:flex;align-items:center;gap:13px;padding:15px 16px;border:1px solid #e5dfe8;border-radius:17px;background:#fff;margin-bottom:16px}.identity-step-heading>span{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#8757a7,#809cc1);color:#fff;box-shadow:0 8px 18px rgba(105,69,129,.18)}.identity-step-heading>span svg{width:20px;height:20px}.identity-step-heading div{display:flex;flex-direction:column;gap:3px}.identity-step-heading strong{font-size:1rem}.identity-step-heading small{color:#827887;line-height:1.4}.identity-step-heading.success>span{background:linear-gradient(135deg,#4f9f78,#7db493)}
.auth-center{justify-content:center}.identity-welcome-banner{display:flex;gap:12px;align-items:flex-start;padding:15px 17px;border-radius:17px;background:linear-gradient(135deg,#edf8f2,#f2f8fb);border:1px solid #d7eade;margin-bottom:16px}.identity-welcome-banner>svg{width:22px;height:22px;color:#4b9a72}.identity-welcome-banner div{display:flex;flex-direction:column;gap:3px}.identity-welcome-banner span{font-size:.82rem;color:#68756d}
.settings-email-field{grid-column:span 1}.settings-email-field>span{display:flex!important;align-items:center;gap:7px}.settings-email-field>span em{font-size:.64rem;font-style:normal;color:#8f779e;background:#f1ebf4;padding:3px 7px;border-radius:999px}.settings-email-field small{line-height:1.45;color:#8a808d}.settings-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.identity-form-hint{font-size:.82rem;color:#7c7180;margin:-4px 0 14px}
.contact-method-card{position:relative}.contact-method-card.is-verified{border-color:rgba(69,157,111,.24);background:linear-gradient(145deg,#fff,#f5fbf8)}.contact-method-state{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.contact-method-state a{font-size:.72rem;font-weight:700;color:#77508d;text-decoration:none}.contact-method-state a:hover{text-decoration:underline}.contact-methods-section .account-section-heading p,.identity-providers-section .account-section-heading p{margin:4px 0 0;color:#8c818f;font-size:.8rem}
.identity-provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.identity-provider-grid article{border:1px solid #e5dfe8;border-radius:17px;padding:14px 15px;display:flex;align-items:center;gap:11px;background:#fff}.identity-provider-grid article>div{display:flex;flex-direction:column;gap:2px}.identity-provider-grid small{color:#8b818e}.identity-provider-grid em{margin-left:auto;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#f1edf3;color:#9b8da0}.identity-provider-grid em.connected{background:#eaf7f0;color:#438d68}.identity-provider-grid em svg{width:16px;height:16px}.provider-icon-facebook{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#1877f2;color:#fff}.provider-icon-facebook svg{width:18px;height:18px}
.verify-phone-page .verify-phone-card{margin:16px 0}.staging-otp-box{border:1px dashed rgba(127,73,162,.35);background:#faf7fc;border-radius:15px;padding:12px 15px;display:flex;align-items:center;gap:12px;margin:14px 0}.staging-otp-box span,.staging-otp-box small{font-size:.72rem;color:#8b7c92}.staging-otp-box strong{font-size:1.35rem;letter-spacing:.12em;color:#6e4386;margin-left:auto}.staging-reset-link{margin-top:14px}

@media(max-width:760px){
  .auth-page--identity{padding-top:54px}.social-auth-grid{grid-template-columns:1fr}.verification-channel-grid{grid-template-columns:1fr}.verification-channel{min-height:62px;flex-direction:row;justify-content:flex-start;padding:0 14px}.verification-channel small{margin-left:auto}.identity-provider-grid{grid-template-columns:1fr}.contact-method-state{align-items:flex-start;margin-left:0}.contact-method-card{flex-wrap:wrap}.settings-form-actions{align-items:stretch}.settings-form-actions>*{width:100%;justify-content:center}.staging-otp-box{flex-wrap:wrap}.staging-otp-box strong{margin-left:0}.auth-divider{margin-top:18px}
}

/* =========================================================
   Stage 35.10 - Contacts / Terms / Privacy
   ========================================================= */
.legal-hero{padding:156px 0 58px;background:radial-gradient(circle at 12% 18%,rgba(151,90,194,.10),transparent 32%),linear-gradient(135deg,#fbf8fb,#f7f9fc);border-bottom:1px solid #ece7ee}.legal-hero .container{max-width:1180px}.legal-kicker{display:inline-flex;align-items:center;min-height:28px;padding:0 11px;border:1px solid rgba(119,78,144,.14);border-radius:999px;background:#fff;color:#754f88;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.legal-hero h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1.02;margin:22px 0 14px;color:#241e29}.legal-hero p{max-width:760px;margin:0;color:#746b79;font-size:1rem;line-height:1.65}.legal-updated{display:inline-block;margin-top:18px;color:#948a98;font-size:.72rem;font-weight:700}.legal-shell{padding:48px 0 90px;background:#faf9fb}.legal-shell>.container{max-width:1180px}.legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.legal-card{position:relative;background:#fff;border:1px solid #e7e1ea;border-radius:22px;padding:26px;box-shadow:0 16px 38px rgba(46,34,57,.055)}.legal-card--wide{grid-column:1/-1}.legal-card-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;margin-bottom:18px;background:linear-gradient(135deg,#8d57ad,#7e9fc3);color:#fff;box-shadow:0 9px 22px rgba(102,70,126,.17)}.legal-card-icon .ui-icon{width:21px;height:21px}.legal-card h2{margin:0 0 10px;font-size:1.22rem;color:#29222d}.legal-card p{margin:0;color:#756b79;line-height:1.7;font-size:.9rem}.legal-contact-main{background:linear-gradient(145deg,#fff,#fcf9ff)}.legal-email-btn{display:inline-flex;margin-top:20px;text-decoration:none;min-height:46px}.legal-email-address{display:block;margin-top:14px;color:#5d4968;font-size:.9rem}.legal-document-links{display:flex;gap:10px;flex-wrap:wrap}.legal-document-links a{display:inline-flex;align-items:center;gap:8px;border:1px solid #e4dce8;background:#faf7fc;color:#704a84;text-decoration:none;font-weight:700;padding:11px 14px;border-radius:13px}.legal-document-links a:hover{background:#f3ebf8}.legal-document-links .ui-icon{width:15px;height:15px}.legal-security-note{grid-column:1/-1;display:flex;align-items:flex-start;gap:11px;padding:16px 18px;border-radius:16px;background:#f1f7f5;color:#62736c;font-size:.8rem;line-height:1.55}.legal-security-note .ui-icon{width:19px;height:19px;flex:0 0 19px;color:#528b72;margin-top:1px}.legal-document-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;align-items:start}.legal-sidebar{position:sticky;top:94px;background:#fff;border:1px solid #e6e0e8;border-radius:19px;padding:8px;box-shadow:0 13px 34px rgba(43,31,51,.05)}.legal-sidebar a{display:flex;align-items:center;gap:10px;padding:12px 13px;border-radius:12px;text-decoration:none;color:#665c6b;font-size:.78rem;font-weight:820}.legal-sidebar a:hover{background:#f8f4fa;color:#633f79}.legal-sidebar a.active{color:#fff;background:linear-gradient(135deg,#8a58a4,#819bb8)}.legal-sidebar .ui-icon{width:17px;height:17px}.legal-document{background:#fff;border:1px solid #e6e0e8;border-radius:22px;padding:34px 38px;box-shadow:0 16px 42px rgba(44,32,53,.055)}.legal-document section+section{border-top:1px solid #eee9f0;margin-top:27px;padding-top:27px}.legal-document h2{font-size:1.22rem;line-height:1.35;margin:0 0 12px;color:#29222d}.legal-document p{margin:0;color:#6e6572;font-size:.9rem;line-height:1.82}.legal-document-end{border-top:1px solid #eee9f0;margin-top:30px;padding-top:23px}.legal-document-end a{color:#754f88;font-weight:700;text-decoration:none}.legal-law-note{display:flex;gap:12px;align-items:flex-start;padding:15px 17px;margin-bottom:28px;border:1px solid #e0e8e4;border-radius:15px;background:#f4f9f7}.legal-law-note .ui-icon{width:20px;height:20px;color:#4f8b70;flex:0 0 20px;margin-top:2px}.legal-law-note p{font-size:.78rem;line-height:1.55;color:#65736d}.footer-link-groups{display:flex;flex-direction:column;gap:10px}.footer-links--legal{opacity:.82}.footer-links--legal a{font-size:.76rem}
@media(max-width:900px){.legal-hero{padding-top:118px}.legal-document-layout{grid-template-columns:1fr}.legal-sidebar{position:static;display:flex;overflow-x:auto;white-space:nowrap}.legal-sidebar a{flex:0 0 auto}.legal-document{padding:27px}.legal-grid{grid-template-columns:1fr}.legal-card--wide{grid-column:auto}}
@media(max-width:600px){.legal-hero{padding:100px 0 38px}.legal-hero h1{font-size:2rem}.legal-shell{padding:28px 0 60px}.legal-card{padding:21px;border-radius:18px}.legal-document{padding:21px 18px;border-radius:18px}.legal-document h2{font-size:1.08rem}.legal-document p{font-size:.85rem}.legal-sidebar{border-radius:15px}.legal-document-links{flex-direction:column}.legal-document-links a{width:100%;justify-content:space-between}}

/* Stage 36 - cookie consent and privacy controls */
.footer-cookie-settings{border:0;background:none;padding:0;color:inherit;font:inherit;display:flex;align-items:center;gap:8px;cursor:pointer;text-align:left}
.cookie-consent[hidden],.cookie-modal[hidden]{display:none!important}.cookie-consent{position:fixed;z-index:12000;left:18px;right:18px;bottom:18px}.cookie-consent-card{max-width:1180px;margin:0 auto;padding:18px 20px;background:rgba(255,255,255,.98);border:1px solid rgba(77,57,94,.13);border-radius:20px;box-shadow:0 24px 70px rgba(25,17,35,.22);display:flex;align-items:center;gap:22px;justify-content:space-between;backdrop-filter:blur(18px)}.cookie-consent-copy{display:flex;align-items:flex-start;gap:13px;min-width:0}.cookie-consent-icon,.cookie-modal-icon{width:40px;height:40px;flex:0 0 40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#8b5aaa,#7e9abe);color:#fff}.cookie-consent-copy strong{display:block;font-size:16px;color:#27202c;margin:1px 0 4px}.cookie-consent-copy p{margin:0;max-width:690px;font-size:13px;line-height:1.55;color:#736a78}.cookie-consent-copy a,.cookie-modal-actions a{color:#744b8f;font-weight:700}.cookie-consent-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.cookie-btn{min-height:42px;border-radius:12px;padding:0 15px;border:1px solid #ded8e2;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap}.cookie-btn--ghost{background:#fff;color:#645b68}.cookie-btn--secondary{background:#f3f0f5;color:#5d5064}.cookie-btn--primary{background:linear-gradient(135deg,#8a5a9c,#839bbb);border-color:transparent;color:#fff;box-shadow:0 8px 20px rgba(101,78,126,.2)}.cookie-modal{position:fixed;inset:0;z-index:12020;display:grid;place-items:center;padding:20px}.cookie-modal-backdrop{position:absolute;inset:0;background:rgba(17,12,22,.55);backdrop-filter:blur(5px)}.cookie-modal-card{position:relative;z-index:1;width:min(560px,100%);background:#fff;border-radius:22px;padding:26px;box-shadow:0 30px 90px rgba(17,12,22,.3)}.cookie-modal-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border:0;border-radius:50%;background:#f3f0f5;color:#706775;font-size:23px;cursor:pointer}.cookie-modal-card h2{font-size:25px;margin:16px 0 6px;color:#27202c}.cookie-modal-card>p{margin:0 0 20px;color:#756d79;line-height:1.55}.cookie-choice{border:1px solid #e6e0e8;border-radius:15px;padding:14px 15px;margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:20px}.cookie-choice div{display:grid;gap:3px}.cookie-choice strong{color:#2e2731}.cookie-choice span{font-size:12px;line-height:1.4;color:#847b88}.cookie-choice>b{font-size:11px;color:#77617f;background:#f4eef7;padding:6px 9px;border-radius:20px;white-space:nowrap}.cookie-choice--toggle{cursor:pointer}.cookie-choice--toggle input{position:absolute;opacity:0;pointer-events:none}.cookie-choice--toggle i{position:relative;width:48px;height:27px;flex:0 0 48px;background:#d8d1dc;border-radius:99px;transition:.2s}.cookie-choice--toggle i:after{content:"";position:absolute;width:21px;height:21px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.18);transition:.2s}.cookie-choice--toggle input:checked+i{background:#8d57ae}.cookie-choice--toggle input:checked+i:after{transform:translateX(21px)}.cookie-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:22px}.cookie-modal-open{overflow:hidden}.legal-document-end .cookie-settings-link{margin-right:10px}
@media(max-width:760px){.cookie-consent{left:10px;right:10px;bottom:10px}.cookie-consent-card{padding:15px;display:grid;gap:13px}.cookie-consent-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.cookie-consent-actions .cookie-btn--primary{grid-column:1/-1}.cookie-btn{width:100%}.cookie-modal-card{padding:22px 17px}.cookie-modal-actions{align-items:stretch;flex-direction:column}.cookie-modal-actions .cookie-btn{width:100%}}

/* Stage 36 - admin controls and communications */
.admin-inline-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.admin-inline-actions form{margin:0}.stage36-mail-card .stage26-payment-health,.stage36-analytics-card .stage26-payment-health{margin:13px 0}.admin-actions form button.danger{color:#b33c3c!important;background:#fff0f0!important}.admin-actions form button.danger:hover{background:#ffe5e5!important}.terms-check a{color:#704784;font-weight:700;text-decoration:underline;text-decoration-color:rgba(112,71,132,.25);text-underline-offset:2px}.stage36-mail-card .stage26-payment-settings-form,.stage36-analytics-card .stage26-payment-settings-form{margin-top:14px}


/* Stage 36.8: authenticated reports and simplified account landing. */
.report-auth-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; }
.report-auth-actions .primary-btn,
.report-auth-actions .secondary-btn { min-height:50px; justify-content:center; text-align:center; }
.account-profile-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0 0 16px; }
.account-profile-meta > div { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 17px; border:1px solid rgba(91,70,98,.10); border-radius:16px; background:linear-gradient(135deg,#fff,#f7f5fa); }
.account-profile-meta span { color:var(--muted); font-size:13px; }
.account-profile-meta strong { color:var(--ink); font-size:15px; white-space:nowrap; }
@media (max-width:640px) {
  .report-auth-actions { grid-template-columns:1fr; }
  .account-profile-meta { grid-template-columns:1fr; }
}


/* =========================================================
   Stage 36.9 - explicit E-mail / Phone login
   ========================================================= */
.login-method-form{gap:14px}
.login-method-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;margin:0 0 2px;border:1px solid #e4dee7;border-radius:16px;background:#f6f3f7}
.login-method-tab{min-height:46px;border:0;border-radius:12px;background:transparent;color:#776c7b;display:flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:700;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
.login-method-tab:hover{color:#5f426e}
.login-method-tab.active{background:#fff;color:#6e4387;box-shadow:0 7px 18px rgba(68,49,78,.09)}
.login-method-tab .ui-icon{width:18px;height:18px}
.login-method-panel[hidden]{display:none!important}
.login-method-panel label>span{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.login-method-panel label>span small{font-size:.67rem;color:#978c9b;font-weight:650}
.login-method-panel .phone-composite-input{width:100%}
@media(max-width:520px){.login-method-tabs{gap:4px;padding:4px}.login-method-tab{min-height:44px;font-size:.88rem}}

/* Stage 37: user-initiated WhatsApp verification */
.whatsapp-verify-shell{display:grid;gap:14px;margin-top:14px}.whatsapp-verify-panel{display:grid;gap:14px;padding:20px;border:1px solid rgba(33,159,92,.2);border-radius:20px;background:linear-gradient(145deg,#fbfffc,#f3fbf6);box-shadow:0 12px 30px rgba(32,92,57,.08)}.whatsapp-verify-icon{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(135deg,#25d366,#18aa50);color:#fff;box-shadow:0 10px 24px rgba(37,211,102,.22)}.whatsapp-verify-icon svg{width:26px;height:26px}.whatsapp-verify-copy{display:grid;gap:6px}.whatsapp-verify-copy strong{font-size:1.05rem;color:#3d3143}.whatsapp-verify-copy p{margin:0;color:#756b79;line-height:1.55}.whatsapp-verify-btn{background:linear-gradient(135deg,#25d366,#159447)!important;border-color:transparent!important;justify-content:center}.whatsapp-verify-btn:hover{filter:brightness(.98);transform:translateY(-1px)}.whatsapp-verify-status{display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 13px;border-radius:13px;background:#fff;border:1px solid rgba(37,211,102,.15);font-weight:700;color:#506058}.whatsapp-verify-pulse{width:9px;height:9px;border-radius:50%;background:#25d366;box-shadow:0 0 0 0 rgba(37,211,102,.36);animation:waVerifyPulse 1.7s infinite}.whatsapp-verify-panel.is-verified .whatsapp-verify-status{color:#177642}.whatsapp-verify-panel.is-expired .whatsapp-verify-status{color:#a45656}.whatsapp-verify-panel.is-expired .whatsapp-verify-pulse{background:#b96767;animation:none}.whatsapp-verify-security{display:flex;align-items:flex-start;gap:9px;color:#766c79;font-size:.82rem;line-height:1.5}.whatsapp-verify-security svg{width:18px;height:18px;flex:0 0 auto;margin-top:1px;color:#687e70}.whatsapp-change-link{margin-top:2px}.whatsapp-login-note{display:flex;gap:10px;align-items:flex-start;margin-top:4px;padding:12px 13px;border-radius:14px;background:#f4fbf6;border:1px solid rgba(37,211,102,.16);font-size:.82rem;line-height:1.5;color:#657269}.whatsapp-login-note svg{width:19px;height:19px;flex:0 0 auto;color:#1ca653}.whatsapp-login-submit{display:flex!important;align-items:center;justify-content:center;gap:9px;border-color:rgba(37,211,102,.28)!important;color:#16733d!important;background:#f6fcf8!important}.whatsapp-login-submit:hover{background:#eff9f2!important}.stage37-webhook-data{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.stage37-webhook-data label{display:grid;gap:6px}.stage37-webhook-data input[readonly]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;background:#f7f6f8;cursor:text}.stage37-wa-error{display:block;margin-top:10px;color:#9c4646;word-break:break-word}@keyframes waVerifyPulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.36)}70%{box-shadow:0 0 0 9px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}@media(max-width:720px){.stage37-webhook-data{grid-template-columns:1fr}.whatsapp-verify-panel{padding:16px}.whatsapp-verify-btn{width:100%}}

/* Stage 38: Telegram verification */
.telegram-verify-shell{display:grid;gap:14px;margin-top:14px}.telegram-verify-panel{display:grid;gap:14px;padding:20px;border:1px solid rgba(34,158,217,.2);border-radius:20px;background:linear-gradient(145deg,#fbfdff,#f1f8fd);box-shadow:0 12px 30px rgba(31,104,143,.08)}.telegram-verify-icon{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(135deg,#2aabee,#229ed9);color:#fff;box-shadow:0 10px 24px rgba(42,171,238,.22)}.telegram-verify-icon svg{width:26px;height:26px}.telegram-verify-copy{display:grid;gap:6px}.telegram-verify-copy strong{font-size:1.05rem;color:#3d3143}.telegram-verify-copy p{margin:0;color:#756b79;line-height:1.55}.telegram-verify-btn{background:linear-gradient(135deg,#2aabee,#168bc4)!important;border-color:transparent!important;justify-content:center}.telegram-verify-btn:hover{filter:brightness(.98);transform:translateY(-1px)}.telegram-verify-status{display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 13px;border-radius:13px;background:#fff;border:1px solid rgba(42,171,238,.16);font-weight:700;color:#4e6270}.telegram-verify-pulse{width:9px;height:9px;border-radius:50%;background:#229ed9;box-shadow:0 0 0 0 rgba(34,158,217,.36);animation:tgVerifyPulse 1.7s infinite}.telegram-verify-panel.is-verified .telegram-verify-status{color:#167298}.telegram-verify-panel.is-expired .telegram-verify-status{color:#a45656}.telegram-verify-panel.is-expired .telegram-verify-pulse{background:#b96767;animation:none}.telegram-verify-security{display:flex;align-items:flex-start;gap:9px;color:#766c79;font-size:.82rem;line-height:1.5}.telegram-verify-security svg{width:18px;height:18px;flex:0 0 auto;margin-top:1px;color:#587889}.telegram-change-link{margin-top:2px}.telegram-login-note{display:flex;gap:10px;align-items:flex-start;margin-top:4px;padding:12px 13px;border-radius:14px;background:#f1f8fd;border:1px solid rgba(42,171,238,.17);font-size:.82rem;line-height:1.5;color:#63747e}.telegram-login-note svg{width:19px;height:19px;flex:0 0 auto;color:#229ed9}.telegram-login-submit{display:flex!important;align-items:center;justify-content:center;gap:9px;border-color:rgba(42,171,238,.3)!important;color:#14739f!important;background:#f4faff!important}.telegram-login-submit:hover{background:#edf7fd!important}@keyframes tgVerifyPulse{0%{box-shadow:0 0 0 0 rgba(34,158,217,.36)}70%{box-shadow:0 0 0 9px rgba(34,158,217,0)}100%{box-shadow:0 0 0 0 rgba(34,158,217,0)}}@media(max-width:720px){.telegram-verify-panel{padding:16px}.telegram-verify-btn{width:100%}}

/* =========================================================
   Stage 40.3 - QR handoff for WhatsApp / Telegram verification
   Desktop: scan with phone. Mobile / touch: open the app directly.
   ========================================================= */
.channel-verify-mobile-copy,
.channel-verify-mobile-action{display:none}
.channel-verify-desktop-action{
    display:grid;
    justify-items:center;
    gap:10px;
    padding:18px;
    border:1px solid rgba(76,61,83,.10);
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 24px rgba(55,40,65,.05)
}
.channel-verify-qr-title{
    color:#413645;
    font-size:.98rem;
    font-weight:700;
    text-align:center
}
.channel-verify-qr-frame{
    width:232px;
    height:232px;
    padding:12px;
    display:grid;
    place-items:center;
    border:1px solid #e6e0e8;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 24px rgba(45,35,50,.08)
}
.channel-verify-qr{
    width:208px;
    height:208px;
    display:grid;
    place-items:center;
    overflow:hidden;
    background:#fff
}
.channel-verify-qr canvas,
.channel-verify-qr img,
.channel-verify-qr svg,
.channel-verify-qr table{
    display:block!important;
    max-width:100%!important;
    max-height:100%!important
}
.channel-verify-qr-hint{
    max-width:360px;
    color:#857a89;
    font-size:.76rem;
    line-height:1.45;
    text-align:center
}
.channel-verify-panel.qr-unavailable .channel-verify-desktop-action{display:none}
.channel-verify-panel.qr-unavailable .channel-verify-mobile-action{display:block}
.channel-verify-panel.qr-unavailable .channel-verify-desktop-copy{display:none}
.channel-verify-panel.qr-unavailable .channel-verify-mobile-copy{display:block}

@media(max-width:900px), (hover:none) and (pointer:coarse){
    .channel-verify-desktop-copy,
    .channel-verify-desktop-action{display:none}
    .channel-verify-mobile-copy,
    .channel-verify-mobile-action{display:block}
    .channel-verify-mobile-action .primary-btn{width:100%}
}

/* =========================================================
   Stage 41.0 - AVO.GE 2.0 unified entry point
   Phone first. Telegram / WhatsApp are passwordless.
   E-mail + password remains only as a legacy sign-in path.
   ========================================================= */
.stage41-login-card{width:min(100%,640px)}
.stage41-phone-login-form{gap:14px;margin-top:22px}
.stage41-phone-heading{display:flex;align-items:center;gap:12px;padding:14px 15px;border:1px solid rgba(112,76,136,.12);border-radius:17px;background:linear-gradient(135deg,#fbf8fd,#f7f9fc)}
.stage41-phone-heading>span{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#8252a5,#819bc0);color:#fff;box-shadow:0 8px 20px rgba(105,70,133,.16)}
.stage41-phone-heading>span svg{width:20px;height:20px}
.stage41-phone-heading>div{display:flex;flex-direction:column;gap:2px}.stage41-phone-heading strong{font-size:1rem;color:#352c39}.stage41-phone-heading small{font-size:.74rem;color:#8c8190;font-weight:650}
.stage41-phone-field{display:block}.stage41-phone-field .phone-composite-input{height:58px;border-radius:16px}.stage41-phone-field .phone-composite-input input{font-size:1.06rem}
.stage41-phone-note{display:flex;align-items:flex-start;gap:9px;padding:11px 13px;border-radius:14px;background:#f8f5fa;color:#766b7a;font-size:.78rem;line-height:1.48}.stage41-phone-note svg{width:17px;height:17px;flex:0 0 17px;color:#79528f;margin-top:1px}
.stage41-channel-actions{display:grid;gap:10px}.stage41-channel-btn{width:100%;min-height:52px;display:flex!important;align-items:center;justify-content:center;gap:10px;border-radius:14px!important;font-weight:700}.stage41-channel-btn svg{width:20px;height:20px}.stage41-channel-btn.is-disabled{opacity:.56;cursor:not-allowed;box-shadow:none!important;transform:none!important}
.stage41-sms-btn{border-color:#ded8e3!important;background:#f8f6f9!important;color:#817684!important}.stage41-sms-btn>span{display:flex;align-items:center;gap:8px}.stage41-sms-btn b{font:inherit}.stage41-sms-btn small{font-size:.68rem;font-weight:700;padding:3px 7px;border-radius:999px;background:#ece8ef;color:#948998}
.stage41-social-divider{margin-top:24px}.stage41-social-grid{margin-top:0}.stage41-social-note{margin-top:13px}
.stage41-legacy-login{margin-top:22px;border:1px solid #e4dee7;border-radius:17px;background:#fbfafc;overflow:hidden}.stage41-legacy-login summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:56px;padding:0 16px;cursor:pointer;color:#684878;font-weight:700;user-select:none}.stage41-legacy-login summary::-webkit-details-marker{display:none}.stage41-legacy-login summary>span{flex:1}.stage41-legacy-login summary .ui-icon{width:19px;height:19px}.stage41-legacy-login summary .ui-icon-arrow-right{transition:transform .18s ease;color:#988a9d}.stage41-legacy-login[open] summary{border-bottom:1px solid #ebe6ed;background:#fff}.stage41-legacy-login[open] summary .ui-icon-arrow-right{transform:rotate(90deg)}
.stage41-legacy-body{padding:16px}.stage41-legacy-body>p{margin:0 0 14px;color:#7d7281;font-size:.8rem;line-height:1.5}.stage41-email-form{gap:13px}.stage41-legacy-footer{text-align:right;margin-top:12px}.stage41-legacy-footer a{color:#765087;font-size:.78rem;font-weight:700;text-decoration:none}.stage41-legacy-footer a:hover{text-decoration:underline}

/* Stage 41.0 QR fix: desktop really gets a QR code; phones get the deep-link button.
   The old pointer/hover media query could classify touch-enabled laptops as mobile. */
@media(min-width:761px){
  .channel-verify-desktop-copy{display:block!important}
  .channel-verify-desktop-action{display:grid!important}
  .channel-verify-mobile-copy,.channel-verify-mobile-action{display:none!important}
  .channel-verify-panel.qr-unavailable .channel-verify-desktop-copy,
  .channel-verify-panel.qr-unavailable .channel-verify-desktop-action{display:none!important}
  .channel-verify-panel.qr-unavailable .channel-verify-mobile-copy,
  .channel-verify-panel.qr-unavailable .channel-verify-mobile-action{display:block!important}
}
@media(max-width:760px){
  .stage41-login-card{width:100%}.stage41-phone-heading{padding:12px}.stage41-channel-btn{min-height:50px}.stage41-social-grid{grid-template-columns:1fr}.stage41-legacy-login summary{font-size:.86rem}
  .channel-verify-desktop-copy,.channel-verify-desktop-action{display:none!important}
  .channel-verify-mobile-copy,.channel-verify-mobile-action{display:block!important}
  .channel-verify-mobile-action .primary-btn{width:100%}
}
.report-auth-actions--single{grid-template-columns:1fr}


/* Stage 41.3 - contact channel alignment + resilient WhatsApp verification UX */
.verify-contact-page{width:min(100%,720px)}
.verify-contact-page .auth-footer{margin-top:22px}
.auth-form-actions--stack{display:grid;gap:10px;margin-top:16px}
.whatsapp-verify-panel-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}
.whatsapp-restart-actions .secondary-btn{justify-content:center}
.contact-method-grid{align-items:stretch}
.contact-method-card{grid-template-columns:44px minmax(0,1fr);grid-template-areas:"icon main" "icon state";align-items:start}
.contact-method-card>.contact-method-icon{grid-area:icon;width:44px;height:44px;border-radius:14px;align-self:center}
.contact-method-card>div:first-of-type{grid-area:main;display:flex;flex-direction:column;justify-content:center;min-height:44px}
.contact-method-card>.contact-method-state{grid-area:state;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:2px}
.contact-method-card>.contact-method-state a{font-weight:700;text-decoration:none;white-space:nowrap}
.contact-method-card>.contact-method-state small{display:block;color:#8a8090;line-height:1.35}
@media(max-width:820px){
  .contact-method-card{grid-template-columns:42px minmax(0,1fr)}
  .contact-method-card>.contact-method-icon{width:42px;height:42px}
}


/* Stage 41.4 - hybrid catalog pagination: Load more + numbered pages */
.catalog-number-pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
    margin-top:2px
}
.catalog-number-pagination[hidden]{display:none}
.catalog-page-numbers{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:7px
}
.catalog-page-link,
.catalog-page-arrow{
    width:40px;
    height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(100,76,112,.14);
    border-radius:12px;
    background:#fff;
    color:#5d4967;
    text-decoration:none;
    font-weight:700;
    box-shadow:0 6px 18px rgba(60,43,70,.05);
    transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease
}
.catalog-page-link:hover,
.catalog-page-arrow:hover{
    transform:translateY(-1px);
    border-color:rgba(120,76,151,.32);
    box-shadow:0 9px 22px rgba(60,43,70,.09)
}
.catalog-page-link.is-loaded:not(.is-current){
    background:rgba(129,91,153,.09);
    border-color:rgba(129,91,153,.24)
}
.catalog-page-link.is-current{
    color:#fff;
    background:var(--accent-gradient);
    border-color:transparent;
    box-shadow:0 9px 22px rgba(89,58,111,.18)
}
.catalog-page-arrow{font-size:1.35rem;line-height:1}
.catalog-page-arrow.is-disabled{
    opacity:.34;
    pointer-events:none;
    box-shadow:none
}
.catalog-page-ellipsis{
    min-width:24px;
    height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#948a99;
    font-weight:700
}
.catalog-grid>[data-catalog-loaded-page]{scroll-margin-top:126px}
@media(max-width:620px){
    .catalog-number-pagination{gap:6px}
    .catalog-page-numbers{gap:5px}
    .catalog-page-link,.catalog-page-arrow{width:36px;height:36px;border-radius:10px;font-size:.86rem}
    .catalog-page-arrow{font-size:1.2rem}
    .catalog-page-ellipsis{height:36px;min-width:18px}
}


/* =========================================================
   Stage 41.5 - unified footer + desktop back-to-top control
   ========================================================= */
.site-footer-v415{
    margin-top:76px;
    padding:0;
    color:#f6f2fb;
    background:
      radial-gradient(circle at 12% 0%,rgba(132,74,196,.18),transparent 34%),
      linear-gradient(118deg,#201a29 0%,#25202d 48%,#1d2633 100%);
    border-top:1px solid rgba(255,255,255,.06)
}
.footer-shell-v415{padding-top:46px;padding-bottom:24px}
.footer-main-v415{
    display:grid;
    grid-template-columns:minmax(260px,1.1fr) minmax(420px,.9fr);
    gap:72px;
    align-items:start
}
.footer-brand-block-v415{max-width:430px}
.footer-brand-block-v415 .footer-brand-v30{gap:12px;text-decoration:none;font-size:25px}
.footer-brand-block-v415 .footer-brand-v30 img{width:42px;height:42px}
.footer-brand-block-v415 p{
    margin:14px 0 0;
    max-width:390px;
    color:#aaa1b2;
    font-size:.86rem;
    line-height:1.65
}
.footer-nav-v415{display:grid;grid-template-columns:repeat(2,minmax(170px,1fr));gap:48px}
.footer-nav-group-v415{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.footer-nav-group-v415 strong{
    margin-bottom:4px;
    color:#f2eafd;
    font-size:.76rem;
    font-weight:700;
    letter-spacing:.09em;
    text-transform:uppercase
}
.footer-nav-group-v415 a{
    position:relative;
    color:#bdb5c4;
    font-size:.84rem;
    line-height:1.35;
    text-decoration:none;
    transition:color .16s ease,transform .16s ease
}
.footer-nav-group-v415 a::before{
    content:"";
    position:absolute;
    left:-14px;
    top:.62em;
    width:5px;
    height:5px;
    border-radius:50%;
    background:#a96dff;
    opacity:0;
    transform:translateX(-4px);
    transition:.16s ease
}
.footer-nav-group-v415 a:hover{color:#fff;transform:translateX(4px)}
.footer-nav-group-v415 a:hover::before{opacity:1;transform:translateX(0)}
.footer-bottom-v415{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:38px;
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,.08);
    color:#8f8797;
    font-size:.76rem
}
.footer-cookie-settings-v415{
    gap:7px;
    color:#9e96a6;
    transition:color .16s ease
}
.footer-cookie-settings-v415:hover{color:#fff}
.footer-cookie-settings-v415 .ui-icon{width:16px;height:16px}
.scroll-top-v415{
    position:fixed;
    z-index:9000;
    right:28px;
    bottom:28px;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.18);
    border-radius:15px;
    color:#fff;
    background:linear-gradient(135deg,#8b55d8,#7d98be);
    box-shadow:0 14px 34px rgba(65,43,84,.28);
    cursor:pointer;
    opacity:0;
    visibility:hidden;
    transform:translateY(10px);
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease,box-shadow .18s ease
}
.scroll-top-v415.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.scroll-top-v415:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(65,43,84,.36)}
.scroll-top-v415 .ui-icon{width:22px;height:22px}
@media(max-width:900px){
    .footer-main-v415{grid-template-columns:1fr;gap:34px}
    .footer-nav-v415{max-width:560px}
}
@media(max-width:640px){
    .site-footer-v415{margin-top:56px}
    .footer-shell-v415{padding-top:34px;padding-bottom:20px}
    .footer-nav-v415{grid-template-columns:1fr 1fr;gap:28px 20px}
    .footer-bottom-v415{align-items:flex-start;flex-direction:column;margin-top:28px;padding-top:17px}
}
@media(max-width:760px){.scroll-top-v415{display:none!important}}


/* =========================================================
   Stage 41.7 - mobile catalog + property UX audit
   Fixes narrow-screen toolbar/select breakage and prevents
   property action buttons from escaping the viewport.
   ========================================================= */
@media (max-width: 760px) {
    /* Catalog toolbar: controls get their own rows on phones. */
    .catalog-results,
    .catalog-toolbar,
    .catalog-toolbar-actions,
    .view-switch,
    .sort-select { min-width: 0; }

    .catalog-toolbar {
        gap: 12px;
        margin-bottom: 16px;
    }
    .catalog-toolbar > div:first-child {
        gap: 8px;
        font-size: 14px;
        line-height: 1.2;
    }
    .catalog-toolbar > div:first-child strong {
        font-size: 27px;
        line-height: 1;
    }
    .catalog-toolbar-actions {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .view-switch {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
        padding: 4px;
        border-radius: 13px;
    }
    .view-switch button {
        width: 100%;
        min-width: 0;
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 0 10px;
        font-size: 14px;
        line-height: 1.15;
        white-space: nowrap;
    }
    .view-switch button .ui-icon {
        width: 17px;
        height: 17px;
        flex: 0 0 17px;
    }

    .sort-select {
        width: 100%;
        display: block;
    }
    .sort-select > span { display: none; }
    .sort-select .avo-select {
        width: 100%;
        min-width: 0;
    }
    .sort-select .avo-select-trigger {
        width: 100%;
        height: 46px;
        min-height: 46px;
        padding: 0 13px 0 14px;
        border-radius: 13px;
        font-size: 14px;
    }
    .sort-select .avo-select-value { display: block; }
    .sort-select .avo-select-chevron { display: grid; }
    .sort-select .avo-select-menu {
        left: 0;
        right: 0;
        min-width: 0;
        width: 100%;
        max-height: 240px;
    }
    .sort-select .avo-select-option > span { display: block; }
    .sort-select .avo-select-option {
        min-height: 44px;
        font-size: 14px;
    }

    /* Catalog cards remain comfortably readable on small devices. */
    .catalog-grid .listing-body {
        padding: 16px 15px 18px;
    }
    .catalog-grid .listing-price {
        font-size: 26px;
        line-height: 1.08;
    }
    .catalog-grid .listing-price-equivalent {
        margin-top: 4px;
        font-size: 13px;
        line-height: 1.35;
    }
    .catalog-grid .listing-body h3 {
        min-height: 0;
        margin: 9px 0 7px;
        font-size: 17px;
        line-height: 1.3;
    }
    .catalog-grid .listing-body p {
        margin-bottom: 14px;
        font-size: 14px;
        line-height: 1.4;
    }
    .catalog-grid .listing-location {
        max-width: 100%;
        align-items: flex-start;
        font-size: 13.5px;
        line-height: 1.35;
    }
    .catalog-grid .listing-location > span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    /* Inner header is in normal document flow on mobile, so the old 120px
       property top padding created the large empty band visible on iPhone. */
    .property-page {
        padding-top: 34px;
    }
    .property-page .breadcrumbs {
        gap: 6px 8px;
        margin-bottom: 18px;
        font-size: 14px;
        line-height: 1.35;
    }
    .property-heading-row {
        gap: 16px;
        margin-bottom: 18px;
    }
    .property-heading-row h1 {
        max-width: 100%;
        font-size: clamp(28px,8vw,34px);
        line-height: 1.1;
        letter-spacing: -.025em;
        overflow-wrap: anywhere;
    }
    .property-heading-meta {
        margin-top: 11px;
        font-size: 15px;
        line-height: 1.45;
    }
    .property-heading-meta span {
        overflow-wrap: anywhere;
    }

    /* Share / favourite / report never run outside the viewport. */
    .property-heading-actions {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: 8px;
    }
    .property-heading-actions > *,
    .property-heading-actions .share-menu-wrap {
        min-width: 0;
    }
    .property-heading-actions .icon-action,
    .property-heading-actions .share-menu-wrap > .icon-action {
        width: 100%;
        min-width: 0;
        min-height: 48px;
        justify-content: center;
        gap: 7px;
        padding: 7px 9px;
        border-radius: 12px;
        font-size: 14px;
        line-height: 1.15;
        text-align: center;
        white-space: normal;
    }
    .property-heading-actions .favorite-symbol {
        flex: 0 0 auto;
    }
    .property-heading-actions .report-action {
        grid-column: 1 / -1;
    }
    .property-heading-actions .share-menu {
        width: min(280px,calc(100vw - 40px));
        max-width: calc(100vw - 40px);
    }

    .gallery-main { border-radius: 16px; }
    .gallery-thumbs {
        padding-bottom: 4px;
        scrollbar-width: thin;
    }

    /* Contact/details were too quiet compared with the rest of the mobile UI. */
    .property-sticky-stack .property-contact-card {
        padding: 19px 17px;
    }
    .property-price {
        font-size: 32px;
        line-height: 1.08;
    }
    .property-price-equivalents span,
    .property-price-equivalents small {
        font-size: 12px;
        line-height: 1.4;
    }
    .property-price-equivalents strong {
        font-size: 14.5px;
    }
    .contact-line,
    .contact-line > span,
    .contact-line strong {
        font-size: 14px;
        line-height: 1.4;
    }
    .contact-line strong {
        max-width: 62%;
        overflow-wrap: anywhere;
    }
    .property-section h2,
    .related-section .section-heading h2 {
        font-size: 24px;
        line-height: 1.18;
    }
    .related-section .section-heading {
        align-items: center;
        gap: 14px;
    }
}

@media (max-width: 420px) {
    .property-heading-row h1 { font-size: 29px; }
    .property-heading-actions .icon-action,
    .property-heading-actions .share-menu-wrap > .icon-action {
        font-size: 13.5px;
    }
    .catalog-page-link,
    .catalog-page-arrow {
        width: 34px;
        height: 34px;
    }
}


/* Stage 41.8 - mobile navigation must stay above catalog/search controls.
   Catalog filters intentionally use their own stacking contexts, so the mobile
   header needs a higher root z-index while the menu is open. */
@media (max-width: 980px) {
    .site-header,
    .site-header--inner {
        z-index: 11000;
        isolation: isolate;
    }
    .site-header .header-inner,
    .site-header--inner .header-inner {
        position: relative;
        z-index: 1;
    }
    .site-header .main-nav,
    .site-header--inner .main-nav {
        z-index: 2;
    }
}


/* Stage 41.9 - mobile footer bottom row alignment */
@media(max-width:640px){
    .footer-bottom-v415{
        flex-direction:row;
        align-items:center;
        justify-content:space-between;
        gap:16px;
        width:100%
    }
    .footer-bottom-v415>.footer-copy{
        flex:0 0 auto;
        margin:0
    }
    .footer-cookie-settings-v415{
        margin-left:auto;
        justify-content:flex-end;
        text-align:right;
        white-space:nowrap
    }
}


/* Stage 41.11 - desktop verification offers both QR and local app/web opening. */
.channel-verify-desktop-open{width:min(100%,360px);display:grid;gap:9px;justify-items:stretch;margin-top:2px}
.channel-verify-desktop-open .primary-btn{width:100%;justify-content:center}
.channel-verify-or{position:relative;display:flex;align-items:center;gap:10px;color:#9a909e;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.channel-verify-or:before,.channel-verify-or:after{content:"";height:1px;background:#ece8ee;flex:1}
@media(max-width:760px){.channel-verify-desktop-open{display:none!important}}


/* =========================================================
   Stage 41.15 - AVO.GE typography system
   Onest for Latin/Cyrillic with Noto Sans Georgian fallback.
   Calm weight hierarchy: 400 / 500 / 600 / 700.
   ========================================================= */
html, body,
button, input, select, textarea, option {
    font-family: "Onest", "Noto Sans Georgian", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
body { font-weight:400; }

/* Georgian glyphs use a dedicated Google Fonts family where required. */
:lang(ka),
:lang(ka-GE),
.property-description.lang-ka {
    font-family:"Noto Sans Georgian", "Onest", Arial, sans-serif;
}

/* Interface controls should feel firm, not heavy. */
.main-nav,
.main-nav a,
.language-switch a,
.add-btn,
.primary-btn,
.secondary-btn,
.search-submit,
.deal-tab,
.text-link,
.icon-action,
.catalog-load-more-btn,
.cookie-btn,
.social-auth-btn,
.stage41-channel-btn,
.auth-submit,
.text-btn,
.footer-nav-v415 a,
.footer-nav-v415 strong,
.account-menu a,
.account-sidebar a,
.admin-sidebar a,
.admin-nav a {
    font-weight:600;
}

/* Labels and supporting UI use medium/semi-bold instead of faux-heavy text. */
label,
.filter-field > span,
.search-grid label span,
.catalog-toolbar,
.breadcrumbs,
.listing-location,
.property-location,
.property-meta,
.contact-method-card,
.contact-status,
.eyebrow,
.listing-tag {
    font-weight:600;
}

/* Only real hierarchy points retain bold. */
h1, h2, h3, h4,
.listing-price,
.property-price,
.brand-wordmark,
.footer-brand-v30,
.setup-card h1,
.admin-topbar strong {
    font-weight:700;
}

/* Avoid the old ultra-heavy visual character in cards and buttons. */
.listing-body h3,
.property-actions button,
.property-actions a,
.catalog-pagination a,
.catalog-pagination button,
.avo-pagination a,
.avo-pagination button {
    font-weight:600;
}

/* =====================================================================
   Stage 41.16 - commercial property gallery + polished amenities
   ===================================================================== */
.property-gallery--commercial .gallery-main {
    border: 1px solid rgba(65,49,72,.08);
    box-shadow: 0 18px 44px rgba(34,27,39,.10);
    touch-action: pan-y pinch-zoom;
}
.property-gallery--commercial .gallery-image-button {
    cursor: grab;
    touch-action: pan-y pinch-zoom;
    -webkit-user-select: none;
    user-select: none;
}
.property-gallery--commercial .gallery-main.is-dragging,
.property-gallery--commercial .gallery-main.is-dragging .gallery-image-button,
.gallery-lightbox-stage.is-dragging { cursor: grabbing; }
.property-gallery--commercial .gallery-image-button > img,
.gallery-lightbox-stage img {
    -webkit-user-drag: none;
    user-select: none;
    will-change: transform, opacity;
}
.property-gallery--commercial .gallery-main::after {
    content: "";
    position: absolute;
    z-index: 2;
    inset: auto 0 0;
    height: 24%;
    pointer-events: none;
    background: linear-gradient(180deg, transparent, rgba(13,11,15,.16));
}
.property-gallery--commercial .gallery-nav,
.property-gallery--commercial .gallery-fullscreen-button {
    border: 1px solid rgba(255,255,255,.32);
    background: rgba(24,20,28,.55);
    box-shadow: 0 8px 24px rgba(0,0,0,.18);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}
.property-gallery--commercial .gallery-nav {
    width: 46px;
    height: 46px;
    margin-top: -23px;
    border-radius: 50%;
}
.property-gallery--commercial .gallery-nav .ui-icon,
.property-gallery--commercial .gallery-fullscreen-button .ui-icon {
    width: 20px;
    height: 20px;
    stroke-width: 2;
}
.property-gallery--commercial .gallery-nav:hover,
.property-gallery--commercial .gallery-fullscreen-button:hover {
    background: rgba(91,65,102,.82);
    border-color: rgba(255,255,255,.56);
    transform: translateY(-1px);
}
.property-gallery--commercial .gallery-nav:active,
.property-gallery--commercial .gallery-fullscreen-button:active { transform: scale(.95); }
.property-gallery--commercial .gallery-nav-prev { left: 16px; }
.property-gallery--commercial .gallery-nav-next { right: 16px; }
.property-gallery--commercial .gallery-fullscreen-button {
    top: 16px;
    right: 16px;
    width: 44px;
    height: 44px;
    border-radius: 14px;
}
.property-gallery--commercial .gallery-main-meta {
    position: absolute;
    z-index: 5;
    right: 16px;
    bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    pointer-events: none;
}
.property-gallery--commercial .gallery-counter {
    position: static;
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 6px 11px;
    border: 1px solid rgba(255,255,255,.24);
    background: rgba(24,20,28,.58);
    box-shadow: 0 6px 18px rgba(0,0,0,.14);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .01em;
}
.property-gallery--commercial .gallery-thumbs {
    display: flex;
    gap: 9px;
    margin-top: 10px;
    padding: 2px 2px 5px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    scrollbar-color: rgba(122,85,137,.35) transparent;
    overscroll-behavior-inline: contain;
}
.property-gallery--commercial .gallery-thumbs button {
    position: relative;
    flex: 0 0 118px;
    aspect-ratio: 16 / 10;
    scroll-snap-align: center;
    border: 2px solid transparent;
    border-radius: 12px;
    opacity: .78;
    background: #ede8ef;
    box-shadow: none;
    transition: opacity .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.property-gallery--commercial .gallery-thumbs button:hover {
    opacity: 1;
    transform: translateY(-1px);
}
.property-gallery--commercial .gallery-thumbs button.active {
    opacity: 1;
    border-color: #8b5da0;
    box-shadow: 0 0 0 2px rgba(139,93,160,.12), 0 6px 18px rgba(61,42,69,.10);
}
.property-gallery--commercial .gallery-thumbs img { border-radius: 9px; }

.gallery-lightbox {
    grid-template-columns: 72px minmax(0,1fr) 72px;
    grid-template-rows: auto minmax(0,1fr) auto;
    grid-template-areas:
        "top top top"
        "prev stage next"
        "thumbs thumbs thumbs";
    gap: 14px 18px;
    padding: 22px 30px 20px;
    background: rgba(12,10,14,.965);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
}
.gallery-lightbox-topbar {
    grid-area: top;
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 4px;
}
.gallery-lightbox-stage {
    grid-area: stage;
    height: min(76vh, 860px);
    min-height: 0;
    cursor: grab;
    touch-action: none;
}
.gallery-lightbox-stage img {
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(0,0,0,.36);
}
.gallery-lightbox-prev { grid-area: prev; }
.gallery-lightbox-next { grid-area: next; }
.gallery-lightbox-nav {
    width: 50px;
    height: 50px;
    align-self: center;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.075);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    transition: background .18s ease, transform .18s ease, border-color .18s ease;
}
.gallery-lightbox-nav:hover {
    background: rgba(139,93,160,.50);
    border-color: rgba(255,255,255,.38);
    transform: scale(1.04);
}
.gallery-lightbox-nav .ui-icon { width: 22px; height: 22px; stroke-width: 2; }
.gallery-lightbox-close {
    position: static;
    width: 44px;
    height: 44px;
    margin-left: auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
    transition: background .18s ease, transform .18s ease;
}
.gallery-lightbox-close:hover { background: rgba(255,255,255,.16); transform: rotate(4deg); }
.gallery-lightbox-close .ui-icon { width: 21px; height: 21px; stroke-width: 2; }
.gallery-lightbox-counter {
    position: static;
    transform: none;
    padding: 8px 12px;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.07);
    font-size: 12px;
    font-weight: 600;
}
.gallery-lightbox-thumbs {
    grid-area: thumbs;
    width: min(920px, 100%);
    margin: 0 auto;
    display: flex;
    gap: 8px;
    padding: 3px 4px 4px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.24) transparent;
    overscroll-behavior-inline: contain;
}
.gallery-lightbox-thumbs button {
    flex: 0 0 92px;
    aspect-ratio: 16 / 10;
    padding: 0;
    overflow: hidden;
    scroll-snap-align: center;
    border: 2px solid transparent;
    border-radius: 10px;
    background: rgba(255,255,255,.07);
    opacity: .55;
    cursor: pointer;
    transition: opacity .18s ease, border-color .18s ease, transform .18s ease;
}
.gallery-lightbox-thumbs button:hover { opacity: .9; transform: translateY(-1px); }
.gallery-lightbox-thumbs button.active { opacity: 1; border-color: #ad7fc0; }
.gallery-lightbox-thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Amenities: calm commercial tiles instead of the old scattered green labels. */
.property-section--amenities { padding-bottom: 25px; }
.property-section--amenities h2 { margin-bottom: 16px; }
.property-section--amenities .property-amenities {
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px;
}
.property-section--amenities .amenity-item {
    min-height: 64px;
    display: grid;
    grid-template-columns: 42px minmax(0,1fr);
    align-items: center;
    gap: 11px;
    padding: 10px 12px;
    border: 1px solid #ebe4ee;
    border-radius: 15px;
    background: linear-gradient(145deg,#fff 0%,#fbf9fc 62%,#f6f3f8 100%);
    color: #403943;
    box-shadow: 0 5px 16px rgba(52,42,58,.035);
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.28;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.property-section--amenities .amenity-item:hover {
    transform: translateY(-1px);
    border-color: #d9cadd;
    box-shadow: 0 9px 22px rgba(52,42,58,.065);
}
.property-section--amenities .amenity-icon {
    width: 42px !important;
    height: 42px !important;
    flex: 0 0 42px !important;
    display: grid !important;
    place-items: center !important;
    border: 1px solid rgba(118,85,130,.08) !important;
    border-radius: 13px !important;
    color: #765a81 !important;
    background: linear-gradient(145deg,#f3edf6,#edf3f7) !important;
}
.property-section--amenities .amenity-icon .ui-icon { width: 20px; height: 20px; stroke-width: 1.8; }
.property-section--amenities .amenity-item > span:not(.amenity-icon) {
    width: auto !important;
    height: auto !important;
    min-width: 0;
    display: block !important;
    place-items: initial !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: inherit !important;
    font-weight: 600 !important;
}
.property-section--amenities .amenity-item--air_conditioner .amenity-icon { color:#4f7893 !important; background:linear-gradient(145deg,#edf7fb,#e9f1f6) !important; }
.property-section--amenities .amenity-item--gas .amenity-icon,
.property-section--amenities .amenity-item--fireplace .amenity-icon { color:#a25f4b !important; background:linear-gradient(145deg,#fff1eb,#f9eeeb) !important; }
.property-section--amenities .amenity-item--hot_water .amenity-icon { color:#527d9b !important; }
.property-section--amenities .amenity-item--internet .amenity-icon { color:#526f95 !important; }
.property-section--amenities .amenity-item--parking .amenity-icon { color:#647086 !important; }

@media (max-width: 980px) {
    .property-section--amenities .property-amenities { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
    .property-gallery--commercial .gallery-main { border-radius: 17px; }
    .property-gallery--commercial .gallery-nav { width: 42px; height: 42px; margin-top: -21px; }
    .property-gallery--commercial .gallery-nav-prev { left: 10px; }
    .property-gallery--commercial .gallery-nav-next { right: 10px; }
    .property-gallery--commercial .gallery-fullscreen-button { top: 10px; right: 10px; width: 40px; height: 40px; border-radius: 12px; }
    .property-gallery--commercial .gallery-main-meta { right: 10px; bottom: 10px; }
    .property-gallery--commercial .gallery-thumbs { gap: 7px; margin-top: 8px; }
    .property-gallery--commercial .gallery-thumbs button { flex-basis: 96px; border-radius: 10px; }

    .gallery-lightbox {
        grid-template-columns: 46px minmax(0,1fr) 46px;
        grid-template-rows: auto minmax(0,1fr) auto;
        gap: 9px 6px;
        padding: 10px 7px 12px;
    }
    .gallery-lightbox-topbar { min-height: 44px; padding: 0 6px; }
    .gallery-lightbox-stage { height: min(78vh,760px); }
    .gallery-lightbox-stage img { border-radius: 10px; }
    .gallery-lightbox-nav { width: 40px; height: 40px; border-radius: 50%; }
    .gallery-lightbox-close { width: 40px; height: 40px; }
    .gallery-lightbox-thumbs { gap: 6px; }
    .gallery-lightbox-thumbs button { flex-basis: 72px; border-radius: 8px; }

    .property-section--amenities .property-amenities { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    .property-section--amenities .amenity-item {
        min-height: 62px;
        grid-template-columns: 38px minmax(0,1fr);
        gap: 9px;
        padding: 9px 10px;
        border-radius: 13px;
        font-size: 12.8px;
    }
    .property-section--amenities .amenity-icon { width:38px !important; height:38px !important; flex-basis:38px !important; border-radius:11px !important; }
    .property-section--amenities .amenity-icon .ui-icon { width:18px; height:18px; }
}
@media (max-width: 359px) {
    .property-section--amenities .property-amenities { grid-template-columns: 1fr; }
}

/* Stage 41.19 - crawlable catalog landing links. */
.catalog-seo-links{
    margin-top:32px;
    padding:26px;
    border:1px solid rgba(94,70,108,.10);
    border-radius:20px;
    background:rgba(255,255,255,.74);
    box-shadow:0 14px 38px rgba(39,31,45,.06);
}
.catalog-seo-links-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}
.catalog-seo-links-head h2{margin:0;font-size:1.15rem;line-height:1.25;font-weight:700;color:var(--text)}
.catalog-seo-links-grid{display:flex;flex-wrap:wrap;gap:10px}
.catalog-seo-links-grid a{
    display:inline-flex;
    align-items:center;
    min-height:40px;
    padding:9px 14px;
    border:1px solid rgba(118,86,129,.14);
    border-radius:12px;
    background:#fff;
    color:#5b4664;
    font-size:.92rem;
    font-weight:600;
    line-height:1.3;
    text-decoration:none;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.catalog-seo-links-grid a:hover{transform:translateY(-1px);border-color:rgba(118,86,129,.30);box-shadow:0 8px 18px rgba(67,49,76,.08)}
@media (max-width:720px){
    .catalog-seo-links{margin-top:22px;padding:20px 16px;border-radius:17px}
    .catalog-seo-links-grid{display:grid;grid-template-columns:1fr;gap:8px}
    .catalog-seo-links-grid a{width:100%;min-height:42px}
}

/* Stage 41.19.7: filter header layout on all languages.
   Reset is deliberately smaller and placed one row above the title. */
.catalog-filters .filter-title-row {
    position: relative;
    display: block;
    padding-top: 16px;
    margin-bottom: 18px;
}
.catalog-filters .filter-title-row h2 {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    max-width: 100%;
    font-size: 20px;
    line-height: 1.2;
}
.catalog-filters .filter-title-row .text-btn {
    position: absolute;
    top: 0;
    right: 0;
    margin: 0;
    padding: 0;
    max-width: 100%;
    white-space: nowrap;
    font-size: 10px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0;
}
html[lang="ka"] .catalog-filters .filter-title-row h2 {
    font-size: 18px;
}

@media (max-width: 980px) {
    .catalog-filters .filter-title-row {
        grid-column: 1 / -1;
        padding-top: 16px;
        margin-bottom: 0;
    }
}

/* ===== Stage 41.20: global remembered display currency ===== */
.property-currency-switch {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    margin: 0 0 13px;
    padding: 4px;
    border: 1px solid rgba(128, 94, 145, .12);
    border-radius: 12px;
    background: rgba(244, 241, 246, .82);
}
.property-currency-switch button {
    min-width: 0;
    min-height: 32px;
    padding: 5px 6px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #766b7a;
    font: inherit;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    transition: background .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.property-currency-switch button span { opacity: .72; }
.property-currency-switch button:hover { background: rgba(255,255,255,.86); color: #4d4054; }
.property-currency-switch button:active { transform: translateY(1px); }
.property-currency-switch button.active {
    background: #fff;
    color: #5f3e72;
    box-shadow: 0 3px 10px rgba(63, 44, 72, .10);
}
.property-currency-switch button.active span { opacity: 1; }
.property-price > [data-global-price],
.listing-price > [data-global-price] { white-space: nowrap; }

@media (max-width: 640px) {
    .property-currency-switch { margin-bottom: 12px; }
    .property-currency-switch button { min-height: 34px; font-size: 11.5px; }
}


/* ===== AVO.GE 2.0 · Stage 41.21 · Home dropdown/header + permanent delete modal ===== */
/* Opening a hero dropdown lifts the hero stacking context to keep the menu above
   the following section. The fixed desktop header must stay above that context. */
.page-home .site-header { z-index: 1200; }

.listing-delete-modal {
    position: fixed;
    inset: 0;
    z-index: 50000;
    display: grid;
    place-items: center;
    padding: 22px;
    opacity: 0;
    transition: opacity .15s ease;
}
.listing-delete-modal[hidden] { display: none !important; }
.listing-delete-modal.is-open { opacity: 1; }
.listing-delete-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(22,17,26,.60);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}
.listing-delete-modal-card {
    position: relative;
    width: min(560px, 100%);
    padding: 26px;
    border: 1px solid rgba(255,255,255,.78);
    border-radius: 24px;
    background: linear-gradient(145deg, rgba(255,255,255,.995), rgba(249,245,250,.99));
    box-shadow: 0 32px 95px rgba(24,18,28,.32);
    transform: translateY(12px) scale(.985);
    transition: transform .17s cubic-bezier(.22,.72,.24,1);
}
.listing-delete-modal.is-open .listing-delete-modal-card { transform: none; }
.listing-delete-modal-close {
    position: absolute;
    top: 14px;
    right: 15px;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(91,70,99,.12);
    border-radius: 50%;
    background: #fff;
    color: #685b6c;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 7px 20px rgba(44,34,49,.07);
}
.listing-delete-modal-head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-right: 42px;
}
.listing-delete-modal-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 16px;
    color: #fff;
    background: linear-gradient(135deg, #a94f59, #d36b72);
    box-shadow: 0 12px 28px rgba(177,72,82,.23);
}
.listing-delete-modal-icon .ui-icon { width: 22px; height: 22px; }
.listing-delete-modal-kicker {
    display: block;
    margin-bottom: 3px;
    color: #a44b54;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .075em;
    text-transform: uppercase;
}
.listing-delete-modal-head h2 {
    margin: 0;
    color: #2f2832;
    font-size: 24px;
    line-height: 1.15;
}
.listing-delete-preview {
    display: grid;
    grid-template-columns: 112px minmax(0,1fr);
    gap: 15px;
    align-items: center;
    margin-top: 22px;
    padding: 10px;
    border: 1px solid rgba(101,78,109,.11);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(42,32,47,.055);
}
.listing-delete-preview img {
    width: 112px;
    height: 78px;
    object-fit: cover;
    border-radius: 13px;
    background: #f1edf3;
}
.listing-delete-preview div { min-width: 0; }
.listing-delete-preview span,
.listing-delete-preview small { display: block; color: #8c818f; font-size: 11px; }
.listing-delete-preview strong {
    display: -webkit-box;
    overflow: hidden;
    margin: 4px 0 6px;
    color: #322b35;
    font-size: 15px;
    line-height: 1.38;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.listing-delete-warning {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin-top: 16px;
    padding: 14px 15px;
    border: 1px solid rgba(181,70,78,.15);
    border-radius: 15px;
    color: #784249;
    background: linear-gradient(135deg, #fff5f5, #fff9f8);
}
.listing-delete-warning .ui-icon { width: 20px; height: 20px; flex: 0 0 20px; margin-top: 1px; color: #b14d56; }
.listing-delete-warning p { margin: 0; font-size: 13.5px; line-height: 1.52; }
.listing-delete-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 22px;
}
.listing-delete-modal-actions .secondary-btn,
.listing-delete-confirm { min-height: 44px; padding: 0 18px; border-radius: 12px; }
.listing-delete-confirm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    color: #fff;
    background: linear-gradient(135deg, #a64a55, #c85d66);
    box-shadow: 0 10px 24px rgba(174,70,80,.22);
    font: inherit;
    font-weight: 650;
    cursor: pointer;
}
.listing-delete-confirm:hover { filter: brightness(1.04); transform: translateY(-1px); }
.listing-delete-confirm:disabled { opacity: .62; pointer-events: none; }
.listing-delete-confirm .ui-icon { width: 17px; height: 17px; }

@media (max-width: 620px) {
    .listing-delete-modal { padding: 10px; align-items: end; }
    .listing-delete-modal-card { padding: 22px 16px 17px; border-radius: 22px 22px 12px 12px; }
    .listing-delete-preview { grid-template-columns: 88px minmax(0,1fr); gap: 12px; }
    .listing-delete-preview img { width: 88px; height: 68px; }
    .listing-delete-modal-actions { flex-direction: column-reverse; }
    .listing-delete-modal-actions > * { width: 100%; justify-content: center; }
}

/* Stage 41.22: exact return path from a property to its catalog landing. */
.property-catalog-return {
    margin: -8px 0 18px;
    font-size: 13px;
    font-weight: 600;
    white-space: normal;
}

/* =====================================================================
   Stage 41.23.1 - brand optical centering
   The new AVO.GE symbol has different visual bounds than the old mark.
   Keep the icon itself centered and lower the wordmark optically by 2px.
   ===================================================================== */
.brand-v30 .brand-wordmark {
    transform: translateY(2px);
}
.footer-brand-v30 > span {
    display: inline-flex;
    align-items: baseline;
    transform: translateY(2px);
}
