/* ============================================================
   a-mon.ru · МИНИ-САЙТЫ ПОСЁЛКОВ · дизайн v2 (полная переверстка)
   Самодостаточный файл: палитра и компоненты основного сайта.
   ============================================================ */
:root{
  --bg:#f4f2ec; --surface:#fffdf8;
  --ink:#1e2226; --body:#3a4147; --muted:#707881;
  --line:#e3e0d6; --line-soft:#ece9df;
  --pine:#272f36; --pine-deep:#1a2126; --pine-mid:#3a4650;
  --brass:#b6863c; --brass-strong:#9d7028; --brass-on-dark:#d0a55e;
  --font:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; background:var(--bg); color:var(--body);
  font:16px/1.55 var(--font); -webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit; text-decoration:none}
.sw{max-width:1080px; margin:0 auto; padding:0 22px}
h1,h2,h3{color:var(--ink); font-weight:700; line-height:1.16; margin:0}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px;
  background:var(--brass); color:#211703; border:0; border-radius:9px;
  font:700 15px/1.2 var(--font); padding:14px 24px; cursor:pointer; text-decoration:none;
  transition:background .18s}
.btn:hover{background:var(--brass-strong); color:#fff}
.btn.ghost{background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.45)}
.btn.ghost:hover{background:rgba(255,255,255,.1); border-color:#fff}

/* ── топбар и шапка ── */
.s-top{background:var(--pine-deep); color:#ccd3d9; font-size:13px}
.s-top .sw{display:flex; align-items:center; gap:20px; min-height:36px}
.s-top a:hover{color:#fff}
.s-top .r{margin-left:auto; display:flex; gap:18px; align-items:center}
.s-top b{color:#fff; font-weight:600}
.s-head{position:sticky; top:0; z-index:50; background:rgba(255,253,248,.94);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--line)}
.s-head .sw{display:flex; align-items:center; gap:20px; min-height:70px}
.s-logo{display:flex; align-items:center; gap:12px; flex:0 0 auto}
.s-logo .wm b{display:block; font-size:17px; font-weight:800; letter-spacing:.16em; color:var(--ink); line-height:1.15}
.s-logo .wm span{display:block; font-size:9.5px; font-weight:600; letter-spacing:.24em;
  text-transform:uppercase; color:var(--muted)}
nav.s-nav{display:flex; gap:4px; margin-left:8px; flex-wrap:wrap}
nav.s-nav a{font-weight:600; font-size:13.5px; color:var(--body); padding:7px 9px; border-radius:8px; white-space:nowrap}
nav.s-nav a:hover{background:#f6ead3; color:var(--brass-strong)}
nav.s-nav li{list-style:none}
nav.s-nav ul{display:flex; gap:4px; margin:0; padding:0; flex-wrap:wrap}
.s-cta{margin-left:auto; display:flex; align-items:center; gap:16px; flex:0 0 auto}
.s-phone{text-align:right}
.s-phone a{font-size:16.5px; font-weight:800; color:var(--ink); white-space:nowrap}
.s-phone small{display:block; font-size:11.5px; color:var(--muted)}
.s-burger{display:none; flex-direction:column; justify-content:center; gap:5px;
  width:42px; height:42px; padding:0 8px; background:transparent;
  border:1.5px solid var(--line); border-radius:9px; cursor:pointer}
.s-burger span{display:block; height:2.2px; border-radius:2px; background:var(--ink);
  transition:transform .25s, opacity .2s; transform:translateZ(0)}
html.snav-open .s-burger span:nth-child(1){transform:translateY(7.2px) rotate(45deg)}
html.snav-open .s-burger span:nth-child(2){opacity:0; transform:scaleX(0)}
html.snav-open .s-burger span:nth-child(3){transform:translateY(-7.2px) rotate(-45deg)}

/* мобильная панель */
.s-mnav{position:fixed; inset:0; z-index:60; scrollbar-width:none;
  background:linear-gradient(160deg, var(--pine-deep), var(--pine));
  padding:16px 24px 36px; overflow:auto; opacity:0; visibility:hidden;
  transition:opacity .25s, visibility .25s}
.s-mnav::-webkit-scrollbar{display:none}
html.snav-open .s-mnav{opacity:1; visibility:visible}
html.snav-open, html.snav-open body{overflow:hidden; touch-action:none}
.s-mnav-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; min-height:46px}
.s-mnav-top b{color:#fff; font-size:16px; letter-spacing:.18em; font-weight:800}
.s-mnav-close{width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  background:transparent; border:1.5px solid rgba(255,255,255,.32); border-radius:9px; color:#fff; cursor:pointer}
.s-mnav nav a, .s-mnav nav li a{display:flex; justify-content:space-between; align-items:center;
  color:#fff; font-size:20px; font-weight:700; padding:14px 2px;
  border-bottom:1px solid rgba(255,255,255,.1)}
.s-mnav nav a::after{content:"→"; color:var(--brass-on-dark); font-size:16px}
.s-mnav nav ul{list-style:none; margin:0; padding:0}
.s-mnav .x{margin-top:24px; display:flex; flex-direction:column; gap:12px; align-items:flex-start}
.s-mnav .x a.tel{color:#fff; font-size:19px; font-weight:800}
.s-mnav .x span{font-size:13px; color:#aab4bd}

/* ── герой посёлка ── */
.s-hero{position:relative; min-height:440px; display:flex; align-items:flex-end;
  background:var(--pine); overflow:hidden}
.s-hero img.bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.s-hero::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(18,23,28,.18) 0%, rgba(18,23,28,.05) 40%, rgba(18,23,28,.78) 100%)}
.s-hero .sw{position:relative; z-index:1; padding-bottom:44px; padding-top:120px; width:100%}
.s-hero .eyebrow{display:inline-block; font-size:11px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:#e8d5b0; background:rgba(18,23,28,.5);
  padding:7px 12px; border-radius:7px; backdrop-filter:blur(3px)}
.s-hero h1{color:#fff; font-size:38px; font-weight:800; letter-spacing:-.02em;
  margin:12px 0 20px; max-width:22em; text-shadow:0 2px 18px rgba(0,0,0,.35)}
.s-hero .act{display:flex; gap:12px; flex-wrap:wrap}

/* ── контент ── */
.s-main{padding:52px 0 10px}
.s-main .cw{max-width:840px}
.s-main h2{font-size:24px; letter-spacing:-.01em; margin:34px 0 14px; padding-top:18px; position:relative}
.s-main h2::before{content:""; position:absolute; top:0; left:0; width:44px; height:3px;
  background:var(--brass); border-radius:2px}
.s-main h2:first-child{margin-top:0}
.s-main p{margin:0 0 13px}
.s-main b, .s-main strong{color:var(--ink)}
.s-main ul{list-style:none; margin:0 0 16px; padding:0}
.s-main ul li{position:relative; padding:5px 0 5px 30px}
.s-main ul li::before{content:"✓"; position:absolute; left:2px; top:4px;
  color:var(--brass-strong); font-weight:800}
.s-main img{border-radius:12px; height:auto}
.s-main a{color:var(--brass-strong)}
.s-main a:hover{color:var(--ink)}
.s-main table{border-collapse:collapse; width:100%; margin:0 0 16px}
.s-main table td, .s-main table th{border:1px solid var(--line); padding:9px 12px; font-size:14.5px}

/* галерея фото посёлка */
.s-gal{padding:26px 0 8px}
.s-gal .row{display:grid; grid-template-columns:repeat(4,1fr); gap:12px}
.s-gal img{width:100%; height:150px; object-fit:cover; border-radius:10px;
  border:1px solid var(--line); display:block; transition:transform .25s}
.s-gal a:hover img{transform:scale(1.04)}

/* CTA-полоса */
.s-band{margin:48px 0 0; background:linear-gradient(150deg, var(--pine-deep), var(--pine)); color:#fff}
.s-band .sw{display:flex; align-items:center; gap:28px; padding:38px 22px; flex-wrap:wrap}
.s-band h2{color:#fff; font-size:23px; letter-spacing:-.01em; max-width:18em}
.s-band p{color:#c1c8cf; margin:6px 0 0; font-size:14.5px}
.s-band .a{margin-left:auto; display:flex; flex-direction:column; gap:10px; align-items:flex-end}
.s-band .a a.tel{color:#fff; font-size:20px; font-weight:800; white-space:nowrap}
.s-band .a span{font-size:12.5px; color:#aab4bd}

/* подвал */
.s-foot{background:var(--ink); color:#aab1b8; font-size:14px}
.s-foot .sw{display:flex; gap:30px; align-items:flex-start; padding:38px 22px 30px; flex-wrap:wrap}
.s-foot .wm b{color:#fff; letter-spacing:.16em}
.s-foot a{color:#aab1b8}
.s-foot a:hover{color:#fff}
.s-foot .r{margin-left:auto; text-align:right}
.s-foot .tel{color:#fff !important; font-weight:800; font-size:17px}
.s-foot .fine{border-top:1px solid rgba(255,255,255,.12); font-size:12.5px; color:#7e868d}
.s-foot .fine .sw{padding:14px 22px}

/* формы (контакты посёлков) */
.s-main input[type="text"], .s-main textarea{
  font:500 14.5px var(--font); width:100%; background:var(--surface);
  border:1.5px solid var(--line); border-radius:9px; padding:11px 13px;
  color:var(--ink); margin-bottom:10px}
.s-main input:focus, .s-main textarea:focus{border-color:var(--brass); outline:none}
.s-main .button, .s-main button[type="submit"], .s-main input[type="submit"]{
  background:var(--brass); color:#211703; border:0; border-radius:9px;
  font:700 15px var(--font); padding:13px 26px; cursor:pointer}

/* ── мобильная ── */
@media (max-width:960px){
  nav.s-nav{display:none}
  .s-burger{display:flex}
  .s-hero h1{font-size:29px}
}
@media (max-width:640px){
  .s-top{display:none}
  .s-head .sw{min-height:60px; gap:12px}
  .s-logo .wm span{display:none}
  .s-phone small{display:none}
  .s-phone a{font-size:15px}
  .s-hero{min-height:340px}
  .s-hero .sw{padding-top:80px; padding-bottom:32px}
  .s-hero h1{font-size:25px}
  .s-gal .row{grid-template-columns:repeat(2,1fr)}
  .s-gal img{height:110px}
  .s-band .a{margin-left:0; align-items:flex-start}
  .s-foot .r{margin-left:0; text-align:left}
}

/* карточная сетка контактов посёлков */
.cgrid{display:flex; gap:20px; flex-wrap:wrap; align-items:flex-start; margin-top:8px}
.cgrid .cbox{flex:1 1 300px; background:var(--surface); border:1px solid var(--line);
  border-radius:14px; padding:22px}
.cbox h2{font-size:19px !important; margin:0 0 14px !important; padding:0 !important}
.cbox h2::before{display:none !important}
.cbox address{font-style:normal; font-size:14.5px; line-height:1.6}

/* страницы с планом участков: горизонтальный скролл при широком контенте */
.plan-safe{max-width:none !important}
.s-main #tabl tr:nth-child(even) td{background:#faf8f2}
.s-main #tabl td, .s-main #tabl th{border:1px solid var(--line); padding:8px 11px; font-size:14px}
.s-main .shemabox img{border-radius:0}

.s-foot .tel, .s-band .a a.tel, .s-phone a{white-space:nowrap}

/* лайтбокс фото (универсальный, вешается скриптом футера) */
.glb{position:fixed; top:0; right:0; bottom:0; left:0; z-index:100001; background:rgba(10,13,16,.94);
  display:none; align-items:center; justify-content:center}
.glb.on{display:flex}
.glb img{max-width:92vw; max-height:90vh; border-radius:6px}
.glb button{position:fixed; border:0; background:rgba(255,255,255,.09); color:#fff; cursor:pointer;
  border-radius:50%; padding:0}
.glb-x{top:16px; right:16px; width:46px; height:46px; font:300 26px/1 inherit}
.glb-p,.glb-n{top:50%; transform:translateY(-50%); width:52px; height:52px; font:300 30px/1 inherit}
.glb-p{left:14px} .glb-n{right:14px}
.glb button:hover{background:#b6863c; color:#211703}
.glb-c{position:fixed; bottom:16px; left:50%; transform:translateX(-50%); color:#fff;
  font-size:13px; font-weight:600}

/* генплан/схема: широкое скроллится внутри себя, страница не распирается */

.pdfobject-container{max-width:100% !important; overflow:hidden}
.pdfobject-container embed, embed.pdfobject{max-width:100% !important; width:100% !important}
@media (max-width:960px){
  .s-main .cw table{display:block; overflow-x:auto; -webkit-overflow-scrolling:touch}
}

/* узкие экраны: шапка поддомена не должна распирать страницу */
@media (max-width:430px){
  .s-head .sw{gap:8px}
  .s-cta{gap:10px}
  .s-phone{font-size:14px}
  .s-phone b, .s-phone a{font-size:14.5px}
  .s-logo b{font-size:14.5px}
  .s-logo span{font-size:8.5px}
}

/* лендинг главной посёлка: секции из внутренних страниц */
.sl-sec{scroll-margin-top:84px}
.sl-sec .cw{border-top:1px solid var(--line); padding-top:34px}
.sl-sec .sl-h{font-size:25px; margin:0 0 18px}
.s-main.sl-sec{padding-top:0}

/* схема/генплан: скроллер-обёртка (JS футера), схема едет целиком вместе с фоном */
.shem-scroll{max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:10px}
.shem-scroll .shemabox{max-width:none}

/* талаево: инлайн-гриды контента на мобиле в одну колонку */
@media (max-width:640px){
  .tal-facts, .tal-env{grid-template-columns:1fr !important}
}

/* интерактивный генплан Талаево: точки в процентах + тултипы */
.gp-wrap{position:relative; border-radius:12px; overflow:visible; line-height:0}
.gp-wrap > img{width:100%; border-radius:12px; display:block}
.gp-dot{position:absolute; width:28px; height:28px; margin:-14px 0 0 -14px; z-index:5; cursor:pointer}
.gp-dot span{display:flex; align-items:center; justify-content:center; width:100%; height:100%;
  border-radius:50%; background:#b6863c; color:#fff; font:700 12px/1 var(--font, "Segoe UI", Arial);
  border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.35); transition:transform .15s}
.gp-dot_next span{background:#6c7177}
.gp-dot:hover{z-index:20}
.gp-dot:hover span{transform:scale(1.25)}
.gp-tip{position:absolute; bottom:34px; left:50%; transform:translateX(-50%); width:230px;
  background:#fff; border-radius:10px; box-shadow:0 10px 30px rgba(20,24,28,.3); padding:12px 14px;
  line-height:1.45; font-size:12.5px; color:#3d434a; opacity:0; visibility:hidden; transition:opacity .15s;
  pointer-events:none; text-align:left}
.gp-tip b{display:block; font-size:13.5px; color:#1e242a; margin-bottom:4px}
.gp-tip em{display:block; font-style:normal; color:#9d7028; font-weight:700; margin-top:3px}
.gp-tip i{display:block; font-style:normal; color:#8d959d; font-size:11px; margin-top:2px}
.gp-tip::after{content:""; position:absolute; top:100%; left:50%; margin-left:-7px;
  border:7px solid transparent; border-top-color:#fff}
.gp-tip_left{left:auto; right:-14px; transform:none}
.gp-tip_left::after{left:auto; right:16px; margin:0}
.gp-tip_right{left:-14px; transform:none}
.gp-tip_right::after{left:16px; margin:0}
.gp-dot:hover .gp-tip, .gp-dot:focus .gp-tip, .gp-dot:active .gp-tip{opacity:1; visibility:visible}
@media (max-width:640px){
  .gp-dot{width:22px; height:22px; margin:-11px 0 0 -11px}
  .gp-dot span{font-size:10px; border-width:1.5px}
  .gp-tip{width:190px; font-size:12px}
}

/* живой хиро: медленный кинематографичный зум (ken burns) */
.s-hero img.bg{animation:kenburns 26s ease-in-out infinite alternate; will-change:transform}
@keyframes kenburns{0%{transform:scale(1) translateY(0)} 100%{transform:scale(1.08) translateY(-1.5%)}}
@media (prefers-reduced-motion:reduce){ .s-hero img.bg{animation:none} }

/* талаево: карточки инфраструктуры города */
.tal-city{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:20px 0 8px}
.tal-city .tc{background:#fffdf8; border:1px solid #e3e0d6; border-radius:13px; padding:20px 20px 18px;
  line-height:1.45}
.tal-city .tc svg{width:30px; height:30px; stroke:#b6863c; stroke-width:1.7; fill:none;
  stroke-linecap:round; stroke-linejoin:round; margin-bottom:11px; display:block}
.tal-city .tc b{display:block; font-size:15.5px; color:#1e242a; letter-spacing:-.01em; margin-bottom:4px}
.tal-city .tc p{font-size:13px; color:#707881; margin:0 0 8px}
.tal-city .tc em{font-style:normal; font-size:12.5px; font-weight:700; color:#9d7028;
  background:rgba(182,134,60,.1); border-radius:999px; padding:4px 10px; display:inline-block}
@media (max-width:960px){ .tal-city{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .tal-city{grid-template-columns:1fr} }

/* видео-хиро (talaevo): поверх постера, только десктоп */
.s-hero video.bg-video{position:absolute; top:0; left:0; width:100%; height:100%;
  object-fit:cover; z-index:0; pointer-events:none}
@media (prefers-reduced-motion:reduce){ .s-hero video.bg-video{display:none} }

/* карточки города: фото-фон, ровная высота */
.tal-city .tc{min-height:196px}
.tal-city .tc p{max-width:78%}

/* спецификации проектов: на мобиле в столбец */
.tal-spec a img{max-height:620px; width:auto; max-width:100%; display:block; margin:0 auto;
  background:#fffdf8; border:1px solid #e3e0d6}
.tal-spec ul{padding-left:20px; margin:8px 0}
.tal-spec li{margin:4px 0}
@media (max-width:760px){ .tal-spec{grid-template-columns:1fr !important} }

/* карточки-лоты проектов домов (стиль элитных КП) */
.lot-card{display:grid; grid-template-columns:58% 1fr; background:#fffdf8; border:1px solid #e3e0d6;
  border-radius:16px; overflow:hidden; margin:26px 0; box-shadow:0 10px 30px rgba(26,30,34,.06)}
.lot-card.lc-rev{grid-template-columns:1fr 58%}
.lot-card.lc-rev .lc-media{order:2}
.lc-media{min-height:100%}
.lc-media a{display:block; height:100%}
.lc-media img{width:100%; height:100%; object-fit:cover; display:block; min-height:380px}
.lc-info{padding:28px 30px 24px; display:flex; flex-direction:column; gap:14px}
.lc-info h3{margin:0 !important; font-size:23px !important; letter-spacing:-.02em}
.lc-price{font:800 21px/1.2 var(--font, "Segoe UI", Arial); color:#9d7028}
.lc-price span{display:block; font:400 12.5px/1.4 var(--font, "Segoe UI", Arial); color:#8d959d; margin-top:3px}
.lc-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; border-top:1px solid #eee9dd;
  border-bottom:1px solid #eee9dd; padding:14px 0}
.lc-stats b{display:block; font-size:21px; font-weight:800; color:#1e242a; letter-spacing:-.01em}
.lc-stats span{font-size:11.5px; color:#8d959d; line-height:1.3; display:block; margin-top:2px}
.lc-det{font-size:13.5px; line-height:1.55; color:#5b636b; margin:0}
.lc-foot{margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:14px}
.lc-nums{font-size:12.5px; font-weight:700; color:#9d7028; background:rgba(182,134,60,.1);
  border-radius:999px; padding:6px 12px}
.lc-plan{display:flex; align-items:center; gap:10px; text-decoration:none}
.lc-plan img{width:64px; height:64px; object-fit:cover; object-position:top; border:1px solid #e3e0d6;
  border-radius:8px; background:#fff; display:block}
.lc-plan em{font-style:normal; font-size:12.5px; color:#9d7028; border-bottom:1px dashed rgba(157,112,40,.5)}
@media (max-width:900px){
  .lot-card, .lot-card.lc-rev{grid-template-columns:1fr}
  .lot-card.lc-rev .lc-media{order:0}
  .lc-media img{min-height:230px; max-height:320px}
  .lc-info{padding:20px 18px 18px}
}

/* ── премиум-типографика Талаево (референс: ziggurat.club) ── */
.ctx-talaevo .s-hero h1{font-family:'Prata', Georgia, serif; font-weight:400; font-size:46px;
  letter-spacing:.01em; line-height:1.18}
.ctx-talaevo .cw h2, .ctx-talaevo .sl-h{font-family:'Prata', Georgia, serif; font-weight:400;
  font-size:31px; letter-spacing:0}
.ctx-talaevo .cw h3{font-family:'Prata', Georgia, serif; font-weight:400; font-size:23px}
.ctx-talaevo .lc-info h3{font-family:'Prata', Georgia, serif; font-weight:400; font-size:24px !important}
.ctx-talaevo .lc-price{font-family:'Prata', Georgia, serif; font-weight:400}
.ctx-talaevo .lc-stats b{font-family:'Prata', Georgia, serif; font-weight:400; font-size:23px}
.ctx-talaevo .tal-city .tc b{letter-spacing:.01em}
.ctx-talaevo .s-band h2{font-family:'Prata', Georgia, serif; font-weight:400}
/* полоса фактов поверх хиро */
.hero-facts{background:rgba(18,22,26,.78); backdrop-filter:blur(6px); margin-top:-92px;
  position:relative; z-index:2; border-top:1px solid rgba(232,196,124,.25); flex:0 0 auto; min-width:600px}
.hero-facts .sw{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; padding:20px 22px}
.hero-facts b{display:block; font-family:'Prata', Georgia, serif; font-weight:400; color:#fff;
  font-size:22px; letter-spacing:.01em; white-space:nowrap}
.hero-facts span{display:block; font-size:12px; color:#b9c0c7; margin-top:3px; letter-spacing:.03em}
@media (max-width:1320px){
  .ctx-talaevo .s-hero{flex-wrap:wrap}
  .hero-facts{margin-top:0; flex:0 0 100%; width:100%; min-width:0}
  .hero-facts .sw{grid-template-columns:repeat(4,1fr); padding:16px 22px 18px}
}
@media (max-width:900px){
  .ctx-talaevo .s-hero h1{font-size:30px}
  .ctx-talaevo .cw h2, .ctx-talaevo .sl-h{font-size:24px}
  .ctx-talaevo .s-hero{flex-wrap:wrap}
  .hero-facts{margin-top:0; flex:0 0 100%; width:100%; min-width:0}
  .hero-facts b{white-space:normal}
  .hero-facts .sw{grid-template-columns:repeat(2,1fr); gap:12px 18px; padding:14px 18px 16px}
  .hero-facts b{font-size:19px}
}

/* карта локации Талаево: город и озеро как на ладони */
.loc-scroll{margin:18px 0 6px}
.loc-map{position:relative; border-radius:14px; overflow:hidden; border:1px solid #e3e0d6}
.loc-map>img{width:100%; display:block}
.lm-pt, .lm-pin{position:absolute; transform:translate(-50%,-8px); text-align:center; pointer-events:none}
.lm-pt::before{content:""; display:block; width:11px; height:11px; margin:0 auto 4px; border-radius:50%;
  background:#272f36; border:2.5px solid #fffdf8; box-shadow:0 1px 4px rgba(0,0,0,.35)}
.lm-pt b{display:block; background:rgba(255,253,248,.93); border:1px solid rgba(39,47,54,.08);
  padding:4px 9px 3px; border-radius:7px; font-size:12.5px; line-height:1.3; color:#272f36;
  white-space:nowrap; box-shadow:0 2px 8px rgba(20,24,28,.14); font-weight:600}
.lm-pt b em{display:block; font-style:normal; font-size:11px; color:#9d7028; font-weight:700}
.lm-up{transform:translate(-50%,calc(-100% + 9px))}
.lm-up::before{display:none}
.lm-up::after{content:""; display:block; width:11px; height:11px; margin:4px auto 0; border-radius:50%;
  background:#272f36; border:2.5px solid #fffdf8; box-shadow:0 1px 4px rgba(0,0,0,.35)}
.lm-pin{display:flex; align-items:center; gap:9px; transform:translate(-11px,-50%); z-index:2}
.lm-pin::before{content:""; display:block; width:17px; height:17px; margin:0 auto 6px; border-radius:50%;
  background:#b6863c; border:3px solid #fffdf8; box-shadow:0 0 0 3px rgba(182,134,60,.38), 0 2px 8px rgba(0,0,0,.4); margin:0; flex:0 0 auto}
.lm-pin b{display:block; background:rgba(24,28,33,.88); color:#e8c47c; font-family:'Prata', Georgia, serif;
  font-weight:400; font-size:14.5px; padding:6px 13px; border-radius:8px; white-space:nowrap;
  border:1px solid rgba(232,196,124,.35); box-shadow:0 3px 10px rgba(0,0,0,.3)}
.loc-hint{display:none; color:#9a948a; font-size:12px; margin:6px 0 0}
@media (max-width:800px){
  .loc-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:14px}
  .loc-map{min-width:760px}
  .loc-hint{display:block}
}

/* кнопка «Написать в MAX» (показывается, если задана настройка контекста max_link) */
.btn-max{background:transparent !important; color:#fff !important; border:1.5px solid rgba(255,255,255,.7) !important; box-shadow:none !important}
.btn-max:hover{background:rgba(255,255,255,.14) !important; border-color:#fff !important}
.s-band .btn-max{display:inline-block; margin-top:10px; padding:10px 18px; border-radius:10px; font-weight:700; font-size:14px;
  color:#e8c47c !important; border:1.5px solid rgba(232,196,124,.6) !important; text-decoration:none}
.s-band .btn-max:hover{background:rgba(232,196,124,.12) !important}

/* генплан на мобиле: горизонтальный скролл, чтобы точки не слипались */
@media (max-width:640px){
  .gp-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:12px; margin:0 0 4px}
  .gp-scroll .gp-wrap{min-width:820px}
}

/* tal-city dark: карточки города — фото во всю карточку, графитовый градиент, белый текст */
.ctx-talaevo .tal-city .tc{position:relative; overflow:hidden; border:0; padding:22px 20px 18px; min-height:236px;
  display:flex; flex-direction:column; justify-content:flex-end; color:#fff; box-shadow:0 10px 26px rgba(20,24,28,.16)}
.ctx-talaevo .tal-city .tc::before{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(18,22,26,.05) 0%, rgba(18,22,26,.42) 45%, rgba(18,22,26,.86) 100%)}
.ctx-talaevo .tal-city .tc > *{position:relative; z-index:1}
.ctx-talaevo .tal-city .tc svg{position:absolute; top:18px; left:20px; width:30px; height:30px; stroke:#e8c47c; z-index:1;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}
.ctx-talaevo .tal-city .tc b{font-family:'Prata', Georgia, serif; font-weight:400; font-size:19px; color:#fff;
  letter-spacing:.01em; margin-bottom:5px; text-shadow:0 1px 8px rgba(0,0,0,.45)}
.ctx-talaevo .tal-city .tc p{color:rgba(255,255,255,.86); font-size:13px; margin:0 0 10px; max-width:100%;
  text-shadow:0 1px 6px rgba(0,0,0,.5)}
.ctx-talaevo .tal-city .tc em{display:inline-block; background:rgba(182,134,60,.92); color:#fff; font-size:12px;
  font-weight:700; padding:4px 10px; border-radius:20px; letter-spacing:.02em}
.ctx-talaevo .tal-city .tc:hover::before{background:linear-gradient(180deg, rgba(18,22,26,.0) 0%, rgba(18,22,26,.36) 45%, rgba(18,22,26,.84) 100%)}

/* lux layer Талаево: латунное свечение при наведении, переливание кнопки, цифры застройщика */
.ctx-talaevo .tal-city .tc em{align-self:flex-start}
.ctx-talaevo .lc-foot{flex-wrap:wrap; gap:10px 14px}
.ctx-talaevo .lc-plan{flex:0 0 auto}
.ctx-talaevo .tal-city .tc, .ctx-talaevo .lot-card, .ctx-talaevo .tal-env a img, .ctx-talaevo .loc-map, .ctx-talaevo .gp-wrap > img{
  transition:transform .35s ease, box-shadow .35s ease}
.ctx-talaevo .tal-city .tc:hover, .ctx-talaevo .lot-card:hover{transform:translateY(-4px);
  box-shadow:0 0 0 1px rgba(182,134,60,.55), 0 18px 40px rgba(20,24,28,.22), 0 0 36px rgba(232,196,124,.38)}
.ctx-talaevo .tal-env a img:hover{transform:translateY(-3px);
  box-shadow:0 0 0 1px rgba(182,134,60,.6), 0 14px 30px rgba(20,24,28,.2), 0 0 30px rgba(232,196,124,.4)}
.ctx-talaevo .loc-map:hover{box-shadow:0 0 0 1px rgba(182,134,60,.5), 0 0 34px rgba(232,196,124,.35)}
.ctx-talaevo .btn:not(.btn-max){background-image:linear-gradient(110deg, #b6863c 0%, #b6863c 35%, #dcb46a 50%, #b6863c 65%, #b6863c 100%);
  background-size:220% 100%; background-position:0 0; transition:background-position .7s ease, box-shadow .35s ease, transform .25s ease}
.ctx-talaevo .btn:not(.btn-max):hover{background-position:100% 0; box-shadow:0 0 26px rgba(232,196,124,.55), 0 6px 18px rgba(0,0,0,.25); transform:translateY(-1px)}
.ctx-talaevo .btn-max:hover{box-shadow:0 0 22px rgba(255,255,255,.25) !important}
.ctx-talaevo .gp-dot:hover span{box-shadow:0 0 0 3px rgba(232,196,124,.45), 0 0 18px rgba(232,196,124,.7)}
.tal-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:18px 0 20px; padding-top:16px;
  border-top:1px solid rgba(182,134,60,.35)}
.tal-stats b{display:block; font-family:'Prata', Georgia, serif; font-weight:400; font-size:36px; line-height:1; color:#9d7028}
.tal-stats span{display:block; font-size:12.5px; color:#707881; margin-top:6px; letter-spacing:.02em}
@media (max-width:640px){ .tal-stats{gap:12px} .tal-stats b{font-size:28px} }

/* галерея Талаево по разделам */
.tal-gal{margin:22px 0 26px}
.tal-gal h3{margin:0 0 4px}
.tal-gal .tg-lead{font-size:13.5px; color:#707881; margin:0 0 12px}
.tg-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:10px}
.tg-grid a{display:block; aspect-ratio:4/3; border-radius:10px; overflow:hidden; background:#e8e5dc}
.tg-grid img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease, box-shadow .35s ease}
.tg-grid a:hover img{transform:scale(1.05)}
.ctx-talaevo .tg-grid a{transition:box-shadow .35s ease}
.ctx-talaevo .tg-grid a:hover{box-shadow:0 0 0 1px rgba(182,134,60,.6), 0 12px 28px rgba(20,24,28,.2), 0 0 28px rgba(232,196,124,.4)}
.tg-all{display:none}
.sub-home .tg-more{display:none}
.sub-home .tg-all{display:block; margin:-6px 0 8px}
.tg-all a{color:#9d7028; font-weight:700; text-decoration:none; border-bottom:1px dashed rgba(157,112,40,.5)}
@media (max-width:960px){ .tg-grid{grid-template-columns:repeat(3,1fr)} }
@media (max-width:640px){ .tg-grid{grid-template-columns:repeat(2,1fr); gap:8px} }

/* лоты под генпланом: карточки с раскрытием проекта (details) */
.lots{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:14px 0 10px}
.lot{background:#fffdf8; border:1px solid #e3e0d6; border-radius:14px; overflow:hidden; transition:box-shadow .35s ease, transform .3s ease}
.lot:hover{box-shadow:0 0 0 1px rgba(182,134,60,.5), 0 12px 28px rgba(20,24,28,.16), 0 0 26px rgba(232,196,124,.32)}
.lot summary{list-style:none; cursor:pointer; padding:14px 16px 12px; display:grid; grid-template-columns:1fr auto; gap:3px 12px; align-items:baseline}
.lot summary::-webkit-details-marker{display:none}
.lot .ln{font-family:'Prata', Georgia, serif; font-size:19px; color:#272f36; line-height:1.1}
.lot .lp{font-family:'Prata', Georgia, serif; font-size:17.5px; color:#9d7028; text-align:right; white-space:nowrap}
.lot .ls{font-size:13px; color:#5a5f66} .lot .la{font-size:13px; color:#5a5f66; text-align:right; white-space:nowrap}
.lot .lk{grid-column:1 / -1; font-size:11.5px; color:#9a948a}
.lot .lst{grid-column:1 / -1; display:flex; justify-content:space-between; align-items:center; margin-top:6px}
.lot .lst b{font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#9d7028}
.lot .lst i{font-style:normal; font-size:12px; color:#8d959d; border-bottom:1px dashed rgba(141,149,157,.6)}
.lot .lst i::after{content:" \2193"} .lot[open] .lst i::after{content:" \2191"}
.lot-next .ln, .lot-next .lp{color:#6c7177} .lot-next .lst b{color:#6c7177}
.lot[open]{grid-column:1 / -1; box-shadow:0 0 0 1px rgba(182,134,60,.55), 0 16px 36px rgba(20,24,28,.18)}
.lot[open] summary{border-bottom:1px solid #eee9dc; background:#fbf9f3}
.lot-x{display:grid; grid-template-columns:1.15fr .85fr 1fr; gap:18px; padding:16px; align-items:start; animation:lotx .35s ease}
@keyframes lotx{from{opacity:0; transform:translateY(-6px)} to{opacity:1; transform:none}}
.lx-img img{width:100%; border-radius:10px; display:block; aspect-ratio:4/3; object-fit:cover}
.lx-plan{display:block; text-align:center; text-decoration:none}
.lx-plan img{width:100%; max-height:270px; object-fit:contain; background:#fff; border:1px solid #e3e0d6; border-radius:10px; display:block}
.lx-plan span{display:block; font-size:11.5px; color:#8d959d; margin-top:6px}
.lx-info h4{margin:0 0 8px; font-family:'Prata', Georgia, serif; font-weight:400; font-size:19px; color:#272f36}
.lx-info ul{list-style:none; margin:0 0 10px; padding:0} .lx-info li{font-size:13.5px; color:#3b434b; padding:3px 0; border-bottom:1px dashed #eee9dc}
.lx-info p{font-size:13.5px; color:#5a5f66; margin:0 0 12px}
.lx-more{font-size:13px; font-weight:700; color:#9d7028; text-decoration:none; border-bottom:1px dashed rgba(157,112,40,.5)}
.lot-x_list{grid-template-columns:1fr} .lx-list{list-style:none; margin:0; padding:0; columns:2; column-gap:24px}
.lx-list li{font-size:13px; color:#3b434b; padding:4px 0; break-inside:avoid} .lx-list li i{font-style:normal; color:#9a948a; font-size:11.5px}
@media (max-width:960px){ .lots{grid-template-columns:repeat(2,1fr)} .lot-x{grid-template-columns:1fr 1fr} .lx-info{grid-column:1 / -1} }
@media (max-width:640px){ .lots{grid-template-columns:1fr; gap:10px} .lot-x{grid-template-columns:1fr; padding:14px} .lx-list{columns:1} }

/* stage1: калькулятор, действия в карточке, сравнение проектов, мессенджеры, форма заявки, счётчики */
.lx-land{font-size:13px; color:#3b434b; background:rgba(182,134,60,.08); border-left:3px solid #b6863c; padding:8px 10px; border-radius:0 8px 8px 0; margin:0 0 12px}
.lx-act{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:12px}
.lx-act .btn{padding:9px 16px; font-size:13.5px}
.lx-copy{background:transparent; border:1px dashed rgba(157,112,40,.6); color:#9d7028; font:600 12.5px var(--font); padding:8px 12px; border-radius:9px; cursor:pointer}
.lx-copy:hover{background:rgba(182,134,60,.08)}
.lx-calc{grid-column:1 / -1; background:#f6f3ea; border-radius:12px; padding:16px 18px; display:grid; grid-template-columns:repeat(4,1fr); gap:10px 20px; align-items:end}
.lx-calc h5{grid-column:1 / -1; margin:0 0 2px; font-family:'Prata', Georgia, serif; font-weight:400; font-size:16px; color:#272f36}
.lc-row label{display:block; font-size:12px; color:#707881; margin-bottom:4px} .lc-row label b{color:#272f36; font-weight:700}
.lc-row input[type=range]{width:100%; accent-color:#b6863c}
.lc-out{grid-column:1 / -1; display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; padding-top:6px; border-top:1px solid rgba(182,134,60,.3)}
.lc-out span{font-size:15px; color:#3b434b} .lc-out .v-pay{font-family:'Prata', Georgia, serif; font-size:30px; color:#9d7028}
.lc-out small{font-size:12px; color:#8d959d}
.lc-note{grid-column:1 / -1; font-size:11.5px; color:#8d959d; margin:0; line-height:1.4}
.cmp-wrap{overflow-x:auto; margin:10px 0 22px; border-radius:12px; border:1px solid #e3e0d6}
.cmp{width:100%; border-collapse:collapse; min-width:680px; font-size:13.5px}
.cmp th, .cmp td{padding:9px 12px; border-bottom:1px solid #eee9dc; text-align:center; vertical-align:top}
.cmp th{font-family:'Prata', Georgia, serif; font-weight:400; font-size:15px; color:#272f36; background:#f6f3ea; line-height:1.25}
.cmp td:first-child{text-align:left; color:#707881; font-size:12.5px; white-space:nowrap}
.cmp td b{color:#9d7028; font-family:'Prata', Georgia, serif; font-weight:400; font-size:15px; white-space:nowrap}
.cmp tr:last-child td{border-bottom:0}
.msg-row{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; justify-content:flex-end}
.msg{display:inline-flex; align-items:center; gap:6px; padding:8px 13px; border-radius:20px; font-size:13px; font-weight:700; text-decoration:none; color:#fff; border:1.5px solid rgba(255,255,255,.35); transition:background .25s, box-shadow .25s}
.msg::before{content:""; width:8px; height:8px; border-radius:50%; background:#e8c47c}
.msg-wa::before{background:#25d366} .msg-tg::before{background:#2aabee} .msg-max::before{background:#8b5cf6}
.msg:hover{background:rgba(255,255,255,.12); box-shadow:0 0 18px rgba(232,196,124,.35)}
.s-band .a{display:flex; flex-direction:column; align-items:flex-end}
.zayavka{background:#1b2025; color:#fff; padding:26px 0 30px; border-top:1px solid rgba(232,196,124,.25)}
.zayavka .sw{display:grid; grid-template-columns:1fr 1.2fr; gap:24px; align-items:center}
.zv-text h3{margin:0 0 6px; font-family:'Prata', Georgia, serif; font-weight:400; font-size:24px; color:#fff}
.zv-text p{margin:0; color:#b9c0c7; font-size:14px}
.zv-form{display:grid; grid-template-columns:1fr 1fr auto; gap:10px; align-items:center}
.zv-form label{display:block; margin:0}
.zv-form input[type=text], .zv-form input[type=tel]{width:100%; box-sizing:border-box; padding:12px 14px; border-radius:10px; border:1.5px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06); color:#fff; font:500 14.5px var(--font)}
.zv-form input::placeholder{color:#8d959d}
.zv-form .is-err input{border-color:#e07a5f}
.zv-form .btn{white-space:nowrap}
.zv-pd{grid-column:1 / -1; font-size:12px; color:#b9c0c7; display:flex; gap:8px; align-items:flex-start}
.zv-pd a{color:#e8c47c} .zv-pd input{margin-top:2px; accent-color:#b6863c} .zv-pd.is-err span{color:#e07a5f}
.zv-hp{position:absolute; left:-9999px; opacity:0; height:0}
.zv-ok, .zv-err{grid-column:1 / -1; padding:10px 14px; border-radius:10px; font-size:14px}
.zv-ok{background:rgba(37,211,102,.15); color:#9be7b6} .zv-err{background:rgba(224,122,95,.15); color:#f2a48d}
@media (max-width:960px){ .lx-calc{grid-template-columns:1fr 1fr} .zayavka .sw{grid-template-columns:1fr} .zv-form{grid-template-columns:1fr 1fr} .zv-form .btn{grid-column:1 / -1} }
@media (max-width:640px){ .lx-calc{grid-template-columns:1fr} .zv-form{grid-template-columns:1fr} .msg-row{justify-content:flex-start} .s-band .a{align-items:flex-start} }

/* счётчики хиро: прямое начертание, без слипания */
.hero-facts .cnt{font-style:normal; display:inline-block; min-width:1ch; letter-spacing:.01em}
.hero-facts b{white-space:nowrap}

/* MAX в шапке (только при заданном max_link) */
.s-top-max{color:#e8c47c; font-weight:600; white-space:nowrap} .s-top-max::before{content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:#8b5cf6; margin-right:6px; vertical-align:1px}
.s-top-max:hover{color:#fff}
.s-max{display:inline-flex; align-items:center; gap:7px; padding:8px 12px; letter-spacing:.04em; border-radius:20px; font-size:13px; font-weight:700; white-space:nowrap;
  color:#272f36; text-decoration:none; border:1.5px solid rgba(182,134,60,.55); background:rgba(182,134,60,.06); transition:box-shadow .3s ease, background .3s ease}
.s-max::before{content:""; width:8px; height:8px; border-radius:50%; background:#8b5cf6}
.s-max:hover{background:rgba(182,134,60,.12); box-shadow:0 0 18px rgba(232,196,124,.45)}
.s-mmax{display:inline-flex; align-items:center; gap:8px; color:#fff; font-weight:700; font-size:16px; text-decoration:none; padding:10px 16px; border:1.5px solid rgba(232,196,124,.55); border-radius:24px}
.s-mmax::before{content:""; width:8px; height:8px; border-radius:50%; background:#8b5cf6}
@media (max-width:960px){ .s-max{display:none} }
@media (max-width:640px){ .s-top-max{display:none} }
