/* sole6 — sole-agent.ru 2026
   Шрифт Onest. Три стиля текста: заголовок .h (80/700), основной .t (30/500), мелкий .sm (20, #6e6e73).
   Цифры .num (80/700). Фоны: #fff, #f5f5f7, #e8ecf1, #000. Ссылки красные «… ›» (.more). */

@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/onest-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/onest-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/onest-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/onest-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/onest-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/onest-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/onest-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/onest-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
	--ink:#1d1d1f; --gray:#86868b; --muted:#6e6e73; --red:#c8002c; --line:#e8e8ed; --line2:#d2d2d7;
	--bg2:#f5f5f7; --bg3:#e8ecf1;
	--pad:clamp(20px, calc(7.238vw - 8.23px), 96px);
	--fh:clamp(40px, 5.556vw, 80px);      /* заголовок 80 → 40 */
	--ft:clamp(21px, 2.084vw, 30px);      /* основной 30 → 21 */
	--fs:clamp(16px, 1.389vw, 20px);      /* мелкий 20 → 16 */
	--fn:clamp(48px, 5.556vw, 80px);      /* цифры 80 → 48 */
	--s180:clamp(80px, 12.5vw, 180px);
	--s160:clamp(80px, 11.12vw, 160px);
	--s120:clamp(64px, 8.34vw, 120px);
	--g120:clamp(48px, 8.34vw, 120px);
	--g96:clamp(40px, 6.667vw, 96px);
	--g88:clamp(40px, 6.12vw, 88px);
	--g72:clamp(40px, 5vw, 72px);
	--g56:clamp(24px, 3.89vw, 56px);
	--g48:clamp(28px, 3.34vw, 48px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:Onest,system-ui,-apple-system,'Segoe UI',Arial,sans-serif;font-size:var(--fs);line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;height:auto;border:0}
a{color:var(--ink)}
a:hover{color:var(--red)}
p{margin:0}
h1,h2,h3,h4{margin:0}
sup{font-size:.67em;line-height:0}
b,strong{font-weight:600}

.wrap{max-width:1440px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.col{max-width:860px;margin-left:auto;margin-right:auto}
.w860{max-width:860px}
.ctr{text-align:center}
.bg-w{background:#fff}.bg-g{background:var(--bg2)}.bg-b{background:var(--bg3)}.bg-k{background:#000;color:#f5f5f7}

/* ---------- три стиля текста ---------- */
.h{font-size:var(--fh);line-height:1;font-weight:700;letter-spacing:-.035em}
.h .g,.t .g,.g{color:var(--gray)}
.h .r,.r{color:var(--red)}
.t{font-size:var(--ft);line-height:1.35;font-weight:500;letter-spacing:-.01em}
.t b,.t strong{font-weight:600}
.sm{font-size:var(--fs);line-height:1.45;color:var(--muted)}
.num{font-size:var(--fn);line-height:1;font-weight:700;letter-spacing:-.02em}
.nw{white-space:nowrap}
a.more,.more a{color:var(--red);text-decoration:none}
a.more:hover,.more a:hover{color:#9e0023}
.more .ch,a.more .ch{font-size:.87em}
.bg-k a.more{color:#ff4d6d}
.fn{font-size:var(--fs);line-height:0;color:var(--gray);margin-left:2px}

@media (max-width:767px){
	.h{line-height:1.05;letter-spacing:-.03em}
	.t{line-height:1.4}
	br.d{display:none}
}
@media (min-width:768px){ br.m{display:none} }

/* ---------- шапка ---------- */
.hd{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:50}
.hd .wrap{height:120px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--ink)}
.logo:hover{color:var(--ink)}
.logo img{width:84px;height:84px;object-fit:cover;display:block}
.logo span{display:flex;flex-direction:column;gap:2px}
.logo b{font-size:26px;line-height:1.1;font-weight:700}
.logo b i{font-style:normal;color:var(--red)}
.logo small{font-size:18px;color:var(--muted)}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:40px;font-size:17px;font-weight:500}
.nav a{text-decoration:none;color:var(--ink)}
.nav a:hover,.nav .current>a{color:var(--red)}
.burger{display:none;width:48px;height:44px;margin-right:-9px;padding:0;border:0;background:none;cursor:pointer;position:relative}
.burger i{position:absolute;left:9px;width:30px;height:2px;background:var(--red);transition:transform .2s,opacity .2s}
.burger i:nth-child(1){top:13px}.burger i:nth-child(2){top:21px}.burger i:nth-child(3){top:29px}
.menu-open .burger i:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-open .burger i:nth-child(2){opacity:0}
.menu-open .burger i:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.mnav{display:none}

@media (max-width:1023px){
	.hd .wrap{height:80px}
	.logo{gap:12px}
	.logo img{width:56px;height:56px}
	.logo span{gap:1px}
	.logo b{font-size:22px}
	.logo small{font-size:15px}
	.hd .nav{display:none}
	.burger{display:block}
	.menu-open{overflow:hidden}
	.menu-open .hd{border-bottom-color:#fff}
	.mnav{display:block;position:fixed;left:0;right:0;top:80px;bottom:0;background:#fff;z-index:49;overflow-y:auto;padding:16px 20px 40px;visibility:hidden;opacity:0;transition:opacity .2s,visibility .2s}
	.menu-open .mnav{visibility:visible;opacity:1}
	.mnav ul{list-style:none;margin:0;padding:0}
	.mnav a{display:block;padding:8px 0;color:var(--ink);text-decoration:none;font-size:30px;line-height:1.2;font-weight:700;letter-spacing:-.02em}
	.mnav .current>a{color:var(--red)}
	.hd .wrap{padding-left:20px;padding-right:20px}
}

/* ---------- подвал ---------- */
.ft{background:#fff;border-top:1px solid var(--line);padding:72px 0 56px}
.ft-top{display:flex;justify-content:space-between;align-items:baseline;gap:40px;padding-bottom:40px;border-bottom:1px solid var(--line)}
.ft-brand{display:flex;align-items:baseline;gap:20px}
.ft-logo{font-size:30px;line-height:1;font-weight:700;letter-spacing:-.01em;color:var(--ink);text-decoration:none}
.ft-logo i{font-style:normal;color:var(--red)}
.ft ul{list-style:none;margin:0;padding:0;display:flex;gap:40px;font-size:20px;line-height:1.45}
.ft ul a{text-decoration:none}
.ft-copy{padding-top:32px}
@media (max-width:767px){
	.ft{background:var(--bg2);border-top-color:var(--line2);padding:28px 0}
	.ft-top{display:block;padding:0;border:0}
	.ft-logo{font-size:24px}
	.ft-slogan,.ft ul{display:none}
	.ft-copy{padding-top:6px;font-size:16px}
}

/* ---------- общие блоки ---------- */
.s180{padding:var(--s180) 0}
.s160{padding:var(--s160) 0}
.s120{padding:var(--s120) 0}
.mb24{margin-bottom:24px}.mb40{margin-bottom:var(--g48)}.mb56{margin-bottom:var(--g56)}.mb72{margin-bottom:var(--g72)}.mb96{margin-bottom:var(--g96)}
.lead{max-width:980px;margin-left:auto;margin-right:auto}
.ctr .lead{text-align:center}
.cta{margin-top:var(--g56)}
.note{margin-top:var(--g120);padding-top:28px;border-top:1px solid var(--line)}
.note p+p{margin-top:8px}
.foot-note{border-top:1px solid var(--line);padding:40px 0 64px}
@media (max-width:767px){ .foot-note{padding:20px 0 40px} .note{padding-top:20px} }

/* горизонтальная лента: на телефоне листается пальцем */
.hscroll{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 calc(-1 * var(--pad));padding:0 var(--pad);scroll-padding:0 var(--pad)}
.hscroll::-webkit-scrollbar{display:none}
.hscroll>*{scroll-snap-align:start;flex:0 0 auto}

/* точки под лентами */
.dots{display:flex;gap:10px;justify-content:center;margin-top:32px}
.dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:var(--line2);cursor:pointer}
.dots button.on{background:var(--ink)}
.bg-k .dots button.on{background:#f5f5f7}
@media (max-width:767px){ .dots{gap:8px;margin-top:20px} .dots button{width:7px;height:7px} }

/* фотолента со скруглением (галереи типа «Что говорят клиенты») */
.strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab}
.strip::-webkit-scrollbar{display:none}
.strip>*{flex:0 0 auto;scroll-snap-align:center}
.strip img{display:block;width:auto;max-width:none;height:var(--sh,413px);border-radius:22px;-webkit-user-drag:none;user-select:none}
.strip.sq img{border-radius:0}
.strip.h413{--sh:clamp(233px, 28.7vw, 413px)}
.strip.h465{--sh:clamp(300px, 32.3vw, 465px)}
.strip.h600{--sh:clamp(360px, 41.67vw, 600px)}
.strip.dragging{cursor:grabbing;scroll-snap-type:none}
@media (max-width:767px){ .strip{gap:12px} .strip img{border-radius:18px} .strip.sq img{border-radius:0} }

/* иконки-тезисы */
.feat{display:flex;gap:64px;max-width:1100px;margin:0 auto}
.feat>div{flex:1;display:flex;flex-direction:column;align-items:center;gap:24px}
.feat svg{width:44px;height:44px;flex:0 0 auto}
.feat .sm{color:var(--ink)}
@media (max-width:767px){
	.feat{flex-direction:column;gap:36px}
	.feat>div{gap:14px}
	.feat svg{width:36px;height:36px}
	.feat p{max-width:300px}
}

/* макет телефона со скриншотом */
.phone{width:452px;height:733px;background:#1d1d1f;border-radius:62px 62px 0 0;padding:16px 16px 0;flex:0 0 auto;align-self:flex-end}
.phone>span{position:relative;display:block;width:420px;height:717px;border-radius:46px 46px 0 0;overflow:hidden;background:#fff}
.phone img{display:block;width:420px;height:717px;max-width:none}
.phone>span::after{content:'';position:absolute;top:12px;left:50%;margin-left:-60px;width:120px;height:34px;border-radius:17px;background:#000}
@media (max-width:1023px){
	.phone{width:272px;height:440px;border-radius:38px 38px 0 0;padding:10px 10px 0;margin:0 auto;align-self:center}
	.phone>span{width:252px;height:430px;border-radius:28px 28px 0 0}
	.phone img{width:252px;height:430px}
	.phone>span::after{top:7px;margin-left:-36px;width:72px;height:20px;border-radius:10px}
}

/* карточки квартир (эксклюзивы, похожие, подкатегории) */
.cards{display:flex;justify-content:center;gap:24px}
.cards.left{justify-content:flex-start}
.card{display:block;width:400px;flex:0 0 auto;text-decoration:none;color:var(--ink);text-align:left}
.card:hover{color:var(--ink)}
.card:hover .t{color:var(--red)}
.card img{display:block;width:400px;height:300px;object-fit:cover}
.card .t{margin:24px 0 4px}
.card .r{color:var(--red)}
@media (max-width:1279px){ .cards{flex-wrap:wrap} }
@media (max-width:767px){
	.cards,.cards.left{flex-wrap:nowrap;justify-content:flex-start;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 calc(-1 * var(--pad));padding:0 var(--pad)}
	.cards::-webkit-scrollbar{display:none}
	.card{width:300px;scroll-snap-align:start}
	.card img{width:300px;height:225px}
	.card .t{margin:16px 0 2px}
}

/* ---------- главная ---------- */
.hero{background:var(--bg3)}
.hero .wrap{display:flex;justify-content:space-between;align-items:flex-end;min-height:660px;gap:40px}
.hero-txt{align-self:stretch;width:560px;flex:0 1 560px;padding:116px 0 80px;display:flex;flex-direction:column;justify-content:space-between}
.hero h1{font-size:clamp(40px, 5.834vw, 84px)}
.hero-sub{padding-top:24px;border-top:1px solid #c9ced6;font-size:21px;line-height:1.5;color:var(--muted)}
.hero-sub b{font-weight:600;color:var(--ink)}
.hero-img{display:block;flex:0 0 auto;max-width:450px}
@media (max-width:1023px){
	.hero .wrap{display:block;min-height:0}
	.hero-txt{width:auto;padding:48px 0 0;display:block}
	.hero h1{margin-bottom:24px;line-height:1.05;letter-spacing:-.03em}
	.hero-sub{padding-top:16px;font-size:16px;line-height:1.45}
	.hero-img{width:350px;max-width:100%;margin-top:24px}
}

.awards{display:grid;grid-template-columns:repeat(3,1fr);column-gap:32px;margin:80px 0 72px}
.awards img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}
.awards .sm{margin-top:20px}
.b-intro .t+.t{margin-top:24px}
@media (max-width:767px){
	.awards{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:48px calc(-1 * var(--pad));padding:0 var(--pad)}
	.awards::-webkit-scrollbar{display:none}
	.awards>div{width:260px;flex:0 0 auto;scroll-snap-align:start}
	.awards .sm{margin-top:14px}
	.b-intro .t+.t{margin-top:20px}
}

.b-years .wrap{display:flex;justify-content:space-between;align-items:center;gap:96px}
.b-years h2{margin-bottom:40px}
.b-years img{display:block;width:500px;flex:0 0 auto}
@media (max-width:1023px){
	.b-years .wrap{display:block}
	.b-years h2{margin-bottom:20px}
	.b-years .t{margin-bottom:40px}
	.b-years img{width:350px;max-width:100%}
}

.quotes{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:16px}
.q-list{display:contents}
.q{padding:32px;background:var(--bg2);border-radius:22px;display:flex;flex-direction:column;justify-content:space-between;gap:24px}
.q-t{font-size:24px;line-height:1.35;font-weight:500;letter-spacing:-.01em}
.q .sm{white-space:nowrap}
.q.rate{justify-content:center}
.rate a{display:flex;gap:20px;align-items:center;text-decoration:none;color:var(--ink)}
.rate .num{letter-spacing:-.035em}
.rate a>span{display:flex;flex-direction:column;gap:8px}
.rate .ya{height:26px;width:auto;align-self:flex-start}
.stars{display:flex;gap:2px}
.stars svg{width:22px;height:22px}
.rate .gp{display:flex;gap:16px;align-items:center}
.rate .gp img{width:72px;height:auto}
.rate .gp b{font-size:20px;line-height:1.45;font-weight:600}
.b-clients .strip{margin-top:var(--g120)}
@media (max-width:1023px){ .quotes{grid-template-columns:repeat(2,1fr)} }
@media (max-width:767px){
	.quotes{display:block}
	.q-list{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 calc(-1 * var(--pad));padding:0 var(--pad)}
	.q-list::-webkit-scrollbar{display:none}
	.q-list .q{width:300px;flex:0 0 auto;min-height:190px;scroll-snap-align:start}
	.q{padding:24px;border-radius:20px;gap:20px}
	.q-t{font-size:21px;line-height:1.4}
	.q.rate{margin-top:32px;gap:20px}
	.rate a{gap:12px}
	.rate .num{font-size:48px;letter-spacing:-.02em}
	.rate a>span{gap:6px}
	.rate .ya{height:20px}
	.stars svg{width:18px;height:18px}
	.rate .gp{gap:10px}
	.rate .gp img{width:48px}
	.rate .gp b{font-size:16px}
	.rate .gp b br{display:none}
	.b-clients .strip{margin-top:56px}
}

.b-call .lead{max-width:900px}
.b-call .cta,.b-call .feat{margin-top:var(--g88)}
@media (max-width:767px){ .b-call .feat{margin-top:48px} .b-call .cta{margin-top:48px} }

.b-tech{padding:var(--s180) 0 0;overflow:hidden}
.b-tech .lead{margin-top:var(--g56)}
.split{display:flex;align-items:center;gap:96px}
.split>.txt{flex:1;padding-bottom:60px;text-align:left}
.b-tech .lead+.split{margin-top:var(--g120)}
.ticks>div{display:flex;align-items:center;gap:28px;margin-bottom:48px}
.ticks svg{width:44px;height:44px;flex:0 0 44px}
.b-price .split,.b-ctrl .split{gap:80px}
.b-ctrl .split{gap:96px}
.b-price h2{margin-bottom:64px}
.b-price .nums{display:flex;flex-direction:column;gap:40px}
.nums .t{margin-top:8px;color:var(--gray)}
.b-ctrl h2{margin-bottom:48px}
@media (max-width:1023px){
	.b-tech.ctr{text-align:left}
	.b-tech .h,.b-tech .lead{text-align:left}
	.split{display:flex;flex-direction:column;align-items:stretch;gap:0}
	.split>.txt{padding-bottom:48px}
	.split>.phone{order:2}
	.b-tech .lead+.split{margin-top:48px}
	.ticks>div{gap:16px;margin-bottom:28px;align-items:flex-start}
	.ticks svg{width:32px;height:32px;flex-basis:32px}
	.ticks>div:last-child{margin-bottom:0}
	.b-price h2{margin-bottom:40px;white-space:normal}
	.b-price .nums{gap:28px}
	.b-ctrl h2{margin-bottom:24px}
	.b-ctrl .t{margin-bottom:0}
}
@media (max-width:767px){ .nums .t{margin-top:6px} }

.b-buy .nums2{display:flex;justify-content:center;gap:120px;margin:72px 0}
@media (max-width:767px){
	.b-buy.ctr{text-align:left}
	.b-buy .h{margin-bottom:48px}
	.b-buy .nums2{display:block;margin:0 0 40px}
	.b-buy .nums2>div+div{margin-top:28px}
	.b-buy .lead{text-align:left}
	.b-buy .cta{margin-top:32px}
}

.b-ex .lead{margin:var(--g56) auto var(--g120)}
@media (max-width:767px){ .b-ex.ctr,.b-ex .lead{text-align:left} .b-ex .lead{margin:24px 0 48px} }

.faq-b .wrap{display:flex;gap:96px;align-items:flex-start}
.faq-b h2{flex:0 0 440px}
.faq{flex:1;border-top:1px solid var(--line2)}
.faq-i{padding:32px 0;border-bottom:1px solid var(--line2)}
.faq-q{display:flex;justify-content:space-between;align-items:baseline;gap:32px;cursor:pointer;user-select:none}
.faq-q::after{content:'+';color:var(--red);font-size:36px;font-weight:400;line-height:1;flex:0 0 auto}
.faq-i.open .faq-q::after{content:'\2212'}
.faq-a{display:none;margin-top:20px;color:var(--gray)}
.faq-a p+p{margin-top:12px}
.faq-i.open .faq-a{display:block}
@media (max-width:1023px){
	.faq-b .wrap{display:block}
	.faq-b h2{margin-bottom:40px}
	.faq-i{padding:22px 0}
	.faq-q{gap:20px}
	.faq-q::after{font-size:26px}
	.faq-a{margin-top:12px}
}

.b-need .feat{max-width:1150px;margin:96px auto 120px}
@media (max-width:767px){ .b-need .h{margin-bottom:48px} .b-need .feat{margin:0 0 36px} .b-need .cta{margin-top:8px} }

/* ---------- страницы ---------- */
.page{padding:var(--s160) 0}
.page-h{margin-bottom:var(--g56)}
.page .t+.t{margin-top:24px}

/* Контакты */
.contact .sm{margin-bottom:16px}
.contact .gap{height:40px}
.contact a.t{display:block;text-decoration:none}
.contact .sep{margin:var(--g72) 0;border-top:1px solid var(--line)}
@media (max-width:767px){ .contact .gap{height:24px} .contact .sm{margin-bottom:8px} }

/* Обо мне */
.about .t+.t{margin-top:24px}
.about .t+img,.about .t+.media{margin-top:var(--g56)}
.about img{display:block}
.about img+.t{margin-top:var(--g72)}
.about .cap{margin-top:16px}
.about .cap+.t{margin-top:var(--g56)}
.about .year{border-top:1px solid var(--line2);margin-top:var(--s160);padding-top:var(--s160)}
.about .year h2{margin-bottom:var(--g56)}
.about .shot{width:375px}
.about-strip{margin:var(--g96) 0 0}
.about-strip+.dots{margin-bottom:var(--s160)}
.strip.about-strip img{border-radius:22px}
@media (max-width:767px){ .strip.about-strip img{border-radius:18px} }

/* Отзывы */
.rev-top{padding:var(--s160) 0 var(--g96)}
.rev-book{padding:var(--s120) 0 var(--g96)}
.rev-book img{display:block;margin:0 auto var(--g96)}
.rev-book .t+.t{margin-top:24px}
.reviews{padding-bottom:var(--s160)}
.reviews .col{border-top:5px solid var(--bg3)}
.review{padding:var(--g96) 0 var(--g72);border-bottom:5px solid var(--bg3)}
.review img{display:block}
.review h2{margin:var(--g56) 0 40px;position:relative;left:-100px}
.review .t+.t{margin-top:24px}
.review .sm{margin-top:32px}
.review .sm a{color:var(--red);text-decoration:none}
@media (max-width:1100px){ .review h2{left:0} }
@media (max-width:767px){ .review h2{margin:32px 0 24px} .review .sm{margin-top:24px} }

/* Коворкинг */
.cow-intro .t+.t{margin-top:32px}
.eco{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.eco svg{width:56px;height:56px}
.eco b{display:block;margin:32px 0 12px;font-weight:700}
.eco a{color:var(--red);text-decoration:none}
.terr .strip{margin-top:var(--g96)}
.work3{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.work3 .t{padding-top:32px;border-top:1px solid var(--line2)}
@media (max-width:767px){
	.eco,.work3{grid-template-columns:1fr;gap:40px}
	.eco b{margin:16px 0 8px}
	.work3{gap:24px}
	.work3 .t{padding-top:20px}
}

/* ---------- каталог ---------- */
.cat-h{margin-bottom:24px}
.cat-sub{margin-bottom:var(--g96);color:var(--gray)}
.cat-list{border-bottom:1px solid var(--line)}
.cat-item{display:flex;gap:48px;padding:48px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.cat-item:hover{color:var(--ink)}
.cat-item:hover .cat-title{color:var(--red)}
.cat-item img{display:block;width:400px;height:300px;object-fit:cover;flex:0 0 auto}
.cat-item .info{flex:1;min-width:0}
.cat-item .addr{margin-top:8px}
.specs{display:flex;align-items:flex-start;gap:24px;margin-top:24px}
.specs dl{display:grid;grid-template-columns:max-content max-content;column-gap:16px;row-gap:6px;white-space:nowrap;font-size:var(--fs);line-height:1.45;margin:0}
.specs dt{color:var(--muted)}
.specs dd{margin:0}
.cat-item .price{margin-top:24px}
.cat-tiles{display:flex;flex-wrap:wrap;gap:24px}
@media (max-width:767px){
	.cat-item{display:block;padding:32px 0}
	.cat-item img{width:100%;height:auto;aspect-ratio:4/3;max-width:400px;margin-bottom:16px}
	.specs{flex-direction:column;gap:6px;margin-top:16px}
	.cat-item .price{margin-top:16px}
	.cat-tiles{flex-wrap:nowrap}
}

/* ---------- карточка квартиры ---------- */
.apt{overflow:hidden}
.page.cat,.page.apt{padding:var(--s120) 0 var(--s160)}
.apt-top{display:flex;justify-content:space-between;align-items:flex-start;gap:48px;margin-bottom:var(--g72)}
.apt-top h1{margin-bottom:24px}
.apt-price{text-align:right;flex:0 0 auto}
.apt-price .num{white-space:nowrap}
.apt-price .t{margin-top:8px;color:var(--gray)}
.gal{display:flex;gap:16px;overflow-x:auto;scrollbar-width:none;margin-right:calc(-1 * var(--pad) - max(0px, (100vw - 1440px) / 2));padding-right:var(--pad);scroll-behavior:smooth;cursor:zoom-in}
.gal::-webkit-scrollbar{display:none}
.gal a{flex:0 0 auto;display:block}
.gal img{display:block;height:var(--gh, 600px);width:auto;max-width:none}
.gal{--gh:clamp(260px, 41.67vw, 600px)}
.gal-nav{display:flex;justify-content:flex-end;gap:40px;margin-top:24px}
.gal-nav button{background:none;border:0;padding:0 4px;font:500 48px/1 Onest,sans-serif;color:var(--red);cursor:pointer}
.gal-nav button:disabled{opacity:.25;cursor:default}
.apt-one img{display:block;width:auto;height:auto;max-width:100%;max-height:clamp(260px, 41.67vw, 600px)}
.params{display:flex;gap:96px;margin-top:48px}
.params dl{flex:1;display:grid;grid-template-columns:300px 1fr;row-gap:24px;margin:0}
.params dt{color:var(--gray)}
.params dd{margin:0}
.apt-one+.params{margin-top:48px}
.apt-map{margin-top:var(--g120)}
.apartment-map{width:100%;height:520px;background:var(--bg3);overflow:hidden}
.apt-text{max-width:860px;margin-top:var(--g120)}
.apt-text p{font-size:var(--ft);line-height:1.35;font-weight:500;letter-spacing:-.01em;margin:0 0 24px}
.apt-text p:last-child{margin-bottom:0}
.apt-phone{margin-top:48px}
.apt-phone a{color:var(--red);text-decoration:none}
.apt-rel{margin-top:var(--s160)}
.apt-rel h2{margin-bottom:var(--g72)}
@media (max-width:1023px){
	.apt-top{display:block}
	.apt-price{text-align:left;margin-top:32px}
	.params{display:block}
	.params dl{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:12px;column-gap:16px}
	.params dl+dl{margin-top:12px}
}
@media (max-width:767px){
	.apt-top h1{margin-bottom:16px}
	.gal{gap:12px}
	.gal-nav{gap:32px;margin-top:16px}
	.gal-nav button{font-size:40px}
	.apartment-map{height:320px}
	.apt-phone{margin-top:32px}
}

/* карта: маркер и окошко */
.single-marker{width:18px;height:18px;border-radius:50%;background:var(--red);border:3px solid #fff;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.3);transform:translate(-50%,-50%)}
.apartment-map .sa-pop,.apartment-map .sa-pop *{box-sizing:border-box;margin:0;padding:0;font-family:Onest,sans-serif;letter-spacing:0;text-transform:none}
.apartment-map .sa-pop{position:relative;width:260px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18);transform:translate(-50%,calc(-100% - 22px));cursor:default;z-index:9999}
.apartment-map .sa-pop::after{content:'';position:absolute;left:50%;bottom:-8px;width:16px;height:16px;background:#fff;transform:translateX(-50%) rotate(45deg)}
.apartment-map .sa-pop-photo{height:150px;background:#eee center/cover no-repeat}
.apartment-map .sa-pop-body{position:relative;z-index:1;padding:12px 14px 14px;background:#fff}
.apartment-map .sa-pop-title{font-size:15px;line-height:20px;font-weight:600;color:var(--ink)}
.apartment-map .sa-pop-addr{margin-top:4px;font-size:13px;line-height:18px;color:var(--muted)}
.apartment-map .sa-pop-price{margin-top:8px;font-size:17px;line-height:22px;font-weight:600;color:var(--ink)}
.apartment-map .sa-pop-close{position:absolute;top:6px;right:6px;z-index:2;width:26px;height:26px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:var(--ink);font-size:18px;line-height:26px;text-align:center;cursor:pointer}
.apartment-map .sa-pop-close:hover{color:var(--red)}

/* ---------- просмотр фото на весь экран ---------- */
.lb{position:fixed;inset:0;z-index:100000;background:#000;display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none}
.lb img{display:block;max-width:calc(100vw - 240px);max-height:calc(100vh - 100px);width:auto;height:auto;user-select:none}
.lb button{position:absolute;background:none;border:0;padding:0;cursor:pointer;line-height:0}
.lb-x{top:32px;right:48px}
.lb-x svg{width:40px;height:40px}
.lb-n{position:absolute;top:40px;left:48px;font-size:20px;line-height:1.45;color:var(--gray)}
.lb-p,.lb-f{top:50%;transform:translateY(-50%);padding:12px}
.lb-p{left:28px}.lb-f{right:28px}
.lb-p svg,.lb-f svg{width:40px;height:72px}
.lb.single .lb-p,.lb.single .lb-f,.lb.single .lb-n{display:none}
body.lb-open{overflow:hidden}
@media (max-width:767px){
	.lb img{max-width:100vw;max-height:calc(100vh - 160px)}
	.lb-x{top:16px;right:16px}
	.lb-x svg{width:28px;height:28px}
	.lb-n{top:18px;left:20px;font-size:16px}
	.lb-p,.lb-f{top:auto;bottom:24px;transform:none}
	.lb-p{left:12px}.lb-f{right:12px}
	.lb-p svg,.lb-f svg{width:24px;height:44px}
}

/* ---------- страницы без макета: наши базовые стили ---------- */
.std{padding:var(--s120) 0 var(--s160)}
.std .wrap>*:first-child{margin-top:0}
.std h1{font-size:var(--fh);line-height:1;font-weight:700;letter-spacing:-.035em;margin:0 0 var(--g56)}
.std h1 span,.std h2 span,.std h3 span{color:var(--gray)}
.std h2{font-size:clamp(32px, 3.89vw, 56px);line-height:1.05;font-weight:700;letter-spacing:-.03em;margin:var(--g96) 0 32px}
.std h3,.std h4{font-size:var(--ft);line-height:1.3;font-weight:700;letter-spacing:-.01em;margin:48px 0 20px}
.std p,.std li{font-size:var(--ft);line-height:1.35;font-weight:500;letter-spacing:-.01em}
.std p{margin:0 0 24px}
.std ul,.std ol{margin:0 0 24px;padding-left:1.2em}
.std li{margin-bottom:12px}
.std li ul{margin:12px 0 0}
.std .notice,.std small{font-size:var(--fs);line-height:1.45;color:var(--muted);font-weight:400}
.std a{color:var(--red);text-decoration:none}
.std a.readmore::after{content:' \203A'}
.std img{display:inline-block;margin:24px 0}
.std .ctr{text-align:left}
.std table{border-collapse:collapse;width:100%;margin:0 0 24px;font-size:var(--fs)}
.std td,.std th{border-bottom:1px solid var(--line);padding:12px 8px;text-align:left}
.std .owl-carousel{display:flex;gap:16px;overflow-x:auto;scrollbar-width:none;margin:48px calc(-1 * var(--pad));padding:0 var(--pad)}
.std .owl-carousel::-webkit-scrollbar{display:none}
.std .owl-carousel>*{flex:0 0 auto}
.std .owl-carousel img{width:auto!important;height:clamp(233px, 28.7vw, 413px);max-width:none;margin:0;border-radius:22px}
.std .clr{clear:both}
.std .n,.std .content,.std .content_resize,.std .news{display:contents}
.category-desc{margin-bottom:var(--g72)}
.blog-items .item{padding:32px 0;border-top:1px solid var(--line)}
.blog-items h2{font-size:var(--ft);margin:0 0 12px}

/* ---------- служебное ---------- */
.pagination,.pagination ul{list-style:none;padding:0;margin:var(--g72) 0 0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;font-size:var(--fs)}
.pagination .page-link{display:block;min-width:44px;padding:8px 12px;text-align:center;color:var(--ink);text-decoration:none}
.pagination .active .page-link{color:var(--red)}
.pagination .disabled .page-link{color:var(--line2)}
.counter{display:none}
#system-message-container:empty{display:none}
joomla-alert,.alert{display:block;max-width:1248px;margin:20px auto;padding:16px 20px;background:var(--bg2);font-size:var(--fs)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.contact .t+.t{margin-top:0}
.page.contact{padding-bottom:64px}

/* ленты на телефоне: отступ слева сохраняется при прокрутке, справа — запас после последнего элемента */
@media (max-width:767px){
	.awards,.q-list,.cards,.cards.left{scroll-padding-left:var(--pad);scroll-padding-right:var(--pad)}
	.awards::after,.q-list::after,.cards::after{content:'';flex:0 0 1px;margin-left:calc(var(--pad) - 1px)}
}

/* маленькие исходные фото — в натуральную величину, без растягивания */
.card img.nat,.cat-item img.nat{width:auto;height:auto;max-width:100%;object-fit:initial}
.cat-item img.nat{max-width:400px}
@media (max-width:767px){ .card img.nat{max-width:300px} .cat-item img.nat{max-width:100%;aspect-ratio:auto} }
/* каталог без подзаголовка: отступ от заголовка как после подзаголовка */
.cat-h+.cards,.cat-h+.cat-list{margin-top:calc(var(--g96) - 24px)}
.strip.about-strip{--sh:clamp(360px, 41.67vw, 600px)}
