/* AS Objects — нейтральные стили, наследуют шрифты и цвета темы */
.aso-object, .aso-list { --aso-line: rgba(127,127,127,.22); --aso-soft: rgba(127,127,127,.08); --aso-radius: 10px; }

/* Бейджи */
.aso-badge { display:inline-block; padding:3px 10px; border-radius:999px; font-size:.75rem; line-height:1.4; font-weight:600; letter-spacing:.02em; vertical-align:middle; }
.aso-badge--active { background:#e6f4ea; color:#17602b; }
.aso-badge--reserved { background:#fff1db; color:#8a5200; }
.aso-badge--sold { background:#ececec; color:#4a4a4a; }
.aso-badge--razbor { background:#1d1d1f; color:#fff; }

/* Галерея */
.aso-gallery { display:grid; grid-template-columns:2fr 1fr; gap:8px; margin:0 0 28px; }
.aso-gallery a { display:block; position:relative; overflow:hidden; border-radius:var(--aso-radius); background:var(--aso-soft); }
.aso-gallery img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.aso-gallery a:hover img { transform:scale(1.02); }
.aso-gallery__main { aspect-ratio:4/3; }
.aso-gallery__thumbs { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:8px; }
.aso-gallery__thumbs a { min-height:0; }
.aso-gallery .aso-hidden { display:none; }
.aso-more { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.45); color:#fff; font-weight:600; }
@media (max-width:700px){ .aso-gallery{ grid-template-columns:1fr; } .aso-gallery__thumbs{ grid-template-columns:repeat(4,1fr); grid-template-rows:auto; } .aso-gallery__thumbs a{ aspect-ratio:1; } }

/* Шапка */
.aso-head { border:1px solid var(--aso-line); border-radius:var(--aso-radius); padding:22px 24px; margin:0 0 32px; }
.aso-head__price { font-size:1.8rem; font-weight:700; line-height:1.2; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.aso-head__slogan { font-size:1.1rem; margin:.4em 0 0; }
.aso-head__addr { opacity:.7; margin:.3em 0 0; }
.aso-facts { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:14px 20px; margin:20px 0; padding:0; }
.aso-facts div { margin:0; }
.aso-facts dt { font-size:.78rem; opacity:.65; margin:0; }
.aso-facts dd { margin:2px 0 0; font-weight:600; }

.aso-btn { display:inline-block; padding:12px 22px; border-radius:999px; background:currentColor; text-decoration:none !important; font-weight:600; }
.aso-btn { background:#1d1d1f; color:#fff !important; }
.aso-btn:hover { opacity:.88; }
.aso-src { margin-left:14px; font-size:.9rem; opacity:.75; }

/* Секции */
.aso-object section { margin:0 0 36px; }
.aso-object h2 { margin:0 0 14px; }
.aso-razbor { background:var(--aso-soft); border-radius:var(--aso-radius); padding:24px 26px; }
.aso-note { font-size:.9rem; opacity:.7; font-style:italic; }
.aso-features dl { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:0 28px; margin:0; }
.aso-features dl div { display:flex; justify-content:space-between; gap:16px; padding:9px 0; border-bottom:1px solid var(--aso-line); }
.aso-features dt { opacity:.7; margin:0; }
.aso-features dd { margin:0; text-align:right; font-weight:500; }
.aso-plans__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; }
.aso-plans__grid img { width:100%; border-radius:var(--aso-radius); background:#fff; border:1px solid var(--aso-line); }
.aso-video__frame { position:relative; aspect-ratio:16/9; border-radius:var(--aso-radius); overflow:hidden; }
.aso-video__frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

/* Лайтбокс */
.aso-lb { position:fixed; inset:0; z-index:99999; background:rgba(10,10,10,.94); display:flex; align-items:center; justify-content:center; }
.aso-lb img { max-width:94vw; max-height:86vh; object-fit:contain; }
.aso-lb button { position:absolute; background:none; border:0; color:#fff; font-size:2.4rem; cursor:pointer; padding:12px 18px; line-height:1; }
.aso-lb__close { top:8px; right:8px; }
.aso-lb__prev { left:4px; top:50%; transform:translateY(-50%); }
.aso-lb__next { right:4px; top:50%; transform:translateY(-50%); }
.aso-lb__count { position:absolute; bottom:14px; left:0; right:0; text-align:center; color:#ddd; font-size:.9rem; }

/* Список */
.aso-filters { display:flex; flex-wrap:wrap; gap:10px 24px; margin:0 0 22px; }
.aso-chips { display:flex; flex-wrap:wrap; gap:6px; }
.aso-chips button { border:1px solid var(--aso-line); background:transparent; color:inherit; padding:7px 14px; border-radius:999px; cursor:pointer; font:inherit; font-size:.9rem; }
.aso-chips button.is-on { background:#1d1d1f; border-color:#1d1d1f; color:#fff; }
.aso-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:26px; }
.aso-card { display:flex; flex-direction:column; }
.aso-card[hidden] { display:none; }
.aso-card__img { position:relative; display:block; aspect-ratio:4/3; overflow:hidden; border-radius:var(--aso-radius); background:var(--aso-soft); }
.aso-card__img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.aso-card:hover .aso-card__img img { transform:scale(1.03); }
.aso-card__badges { position:absolute; top:12px; left:12px; display:flex; gap:6px; flex-wrap:wrap; }
.aso-card.is-sold .aso-card__img img { filter:grayscale(.6); opacity:.8; }
.aso-card__body { padding:14px 2px 0; }
.aso-card__price { font-weight:700; font-size:1.2rem; }
.aso-card__title { font-size:1rem; line-height:1.35; margin:6px 0 0; font-weight:500; }
.aso-card__title a { text-decoration:none; color:inherit; }
.aso-card__facts { margin:6px 0 0; font-size:.88rem; opacity:.7; }
