/* ПроАстроМир — Наталья Урвачева. Стили сайта. */

/* ---------- шрифты ----------
   Фирменные: Gilroy (текст) и Monotype Corsiva (имя). Их файлы лежат в /fonts,
   подключение делает inc/layout.php (brand_fonts). Ниже — запасные шрифты (лицензия OFL). */
@font-face { font-family: "Montserrat"; font-weight: 400; font-display: swap; src: url("/fonts/montserrat-cyrillic-400-normal.woff2") format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Montserrat"; font-weight: 400; font-display: swap; src: url("/fonts/montserrat-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212; }
@font-face { font-family: "Montserrat"; font-weight: 500; font-display: swap; src: url("/fonts/montserrat-cyrillic-500-normal.woff2") format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Montserrat"; font-weight: 500; font-display: swap; src: url("/fonts/montserrat-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212; }
@font-face { font-family: "Montserrat"; font-weight: 600; font-display: swap; src: url("/fonts/montserrat-cyrillic-600-normal.woff2") format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Montserrat"; font-weight: 600; font-display: swap; src: url("/fonts/montserrat-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212; }
/* Cormorant Garamond Italic 700 — ближе всего к Monotype Corsiva; зарегистрирован как «прямой», чтобы браузер не наклонял его еще раз */
@font-face { font-family: "Corsiva Fallback"; font-weight: 400; font-style: normal; font-display: swap; src: url("/fonts/cormorant-garamond-cyrillic-700-italic.woff2") format("woff2"); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Corsiva Fallback"; font-weight: 400; font-style: normal; font-display: swap; src: url("/fonts/cormorant-garamond-latin-700-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+2000-206F; }

/* Пока из Gilroy есть только Light и ExtraBold, layout.php задает --fw-boost: тонкая обводка букв
   делает Light на пару ступеней плотнее там, где по макету Regular/Medium (меню, кнопки, заголовки).
   Когда в /fonts появятся Regular/Medium, переменная не задается и обводка исчезает. */
.main-nav .menu a, .button, .calc-form button, .logo__role, .person h1, .section h2, .calc-strip h2, .result-card h2,
.page-head h1, .cta h2, .faq summary, .field input, .field select, .field .ph {
  -webkit-text-stroke: var(--fw-boost, 0) currentColor; }

/* ---------- цвета ---------- */
:root {
  --k: 1;                 /* масштаб размеров: на компьютере .8 (см. ниже), на планшете и телефоне 1 */
  --teal:#2fb8a7;        /* бирюзовые акценты:надзаголовок, линии */
  --brand-bg: #80d3c9;    /* фон шапки и формы расчета (как в макете) */
  --menu-active:#0c6284; /* текущий пункт меню */
  --teal-soft:#dff4f2;   /* осветление в градиенте */
  /* градиент полосы «Данные рождения» и блока с картой: по краям #80d3c9, светлая середина — симметрично */
  --strip-bg:linear-gradient(90deg, var(--brand-bg) 0%, var(--brand-bg) 16%, var(--teal-soft) 44%, var(--teal-soft) 56%, var(--brand-bg) 84%, var(--brand-bg) 100%);
  --teal-line:#b7e5df;
  --ink:#0c6284;         /* темный текст и темные кнопки */
  --btn:#0c6284;
  --btn-hover:#094c67;
  /* кнопки-клавиши: верх и низ градиента, кромка; нажатая темная; светлая */
  --btn-hi:#2b95bd; --btn-lo:#0a5370; --btn-edge:#063a50;
  --btn-press-hi:#07405a; --btn-press-lo:#0b5b7a; --btn-press-edge:#042c3d;
  --btnl-hi:#ffffff; --btnl-lo:#c9ebe6; --btnl-edge:#4b98a3;
  --text:#22313a;
  --muted:#56666e;
  --ph:#767676;          /* подсказки в полях */
  --font:"Gilroy", "Montserrat", "Segoe UI", Roboto, Arial, sans-serif;
  --font-name:"Monotype Corsiva", "Corsiva Fallback", "Times New Roman", serif;
  --radius:calc(7px * var(--k));
  --radius-card:calc(6px * var(--k));     /* форма расчета и фото */
  --header-h:calc(137px * var(--k));
}

/* На компьютере (шире 1100 px) все размеры на 20% меньше — как масштаб 80% в браузере. */
@media (min-width: 1101px) { :root { --k: .8; } }

*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-padding-top:calc(16px * var(--k)); }
/* подвал всегда внизу окна, даже на короткой странице */
body { min-height:100vh; display:flex; flex-direction:column; }
body > main { flex:1 0 auto; }
body { margin:0; font-family:var(--font); font-size:calc(17px * var(--k)); line-height:1.6; color:var(--text);
  background:#fff url("/img/bg-space.jpg") center top / calc(1920px * var(--k)) auto repeat-y;
  background-image:image-set(url("/img/bg-space.webp") type("image/webp"), url("/img/bg-space.jpg") type("image/jpeg")); }
img { max-width:100%; height:auto; display:block; }
a { color:var(--ink); }
:focus-visible { outline: 3px solid var(--btn); outline-offset: 2px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position:absolute; left:calc(12px * var(--k)); top:calc(-60px * var(--k)); z-index:100; padding:calc(10px * var(--k)) calc(16px * var(--k)); background:#fff; color:var(--ink); border-radius:var(--radius); }
.skip-link:focus { top:calc(12px * var(--k)); }
.container { width:100%; max-width:calc(1430px * var(--k)); margin:0 auto; padding:0 calc(24px * var(--k)); }

/* ---------- шапка и логотип ---------- */
.site-header { position:relative; z-index:10; background:var(--brand-bg); box-shadow: 0 4px 10px rgba(6, 60, 70, .2); }
.site-header .container { display:flex; align-items:center; gap:calc(32px * var(--k)); min-height:var(--header-h); }
.logo { position:relative; flex:none; display:flex; align-items:flex-end; gap:calc(12px * var(--k)); text-decoration:none; }
.logo::before {                /* светлая полоса за логотипом на всю высоту шапки — горизонтальный градиент, как у формы */
  content:""; position:absolute; z-index:0; top:50%; height:var(--header-h); transform:translateY(-50%);
  left:calc(-1 * min(110px * var(--k), max(24px * var(--k), (100vw - 1430px * var(--k)) / 2 + 24px * var(--k))));  /* не дальше края окна */
  right:calc(-80px * var(--k));
  background:linear-gradient(90deg, var(--brand-bg) 0%, var(--teal-soft) 30%, var(--teal-soft) 70%, var(--brand-bg) 100%);
}
.logo > * { position:relative; z-index:1; }
.logo__mark { display:flex; flex-direction:column; align-items:center; gap:1px; }
.logo__mark img { width:calc(96px * var(--k)); height:calc(59px * var(--k)); }
.logo__brand { font-size:calc(15px * var(--k)); line-height:1.1; color:var(--teal); letter-spacing:.01em; font-weight:600; text-rendering:geometricPrecision; }  /* полужирный, без «рваных» промежутков на мелком кегле */
.logo__text { display:flex; flex-direction:column; align-items:center; padding-bottom:2px; margin-left:calc(-18px * var(--k)); }  /* имя на букву ближе к лотосу */
.logo__name { position:relative; font-family:var(--font-name); font-size:calc(39px * var(--k)); line-height:1.05; color:var(--ink); white-space:nowrap; padding-bottom:calc(7px * var(--k)); }
.logo__name::after { content:""; position:absolute; left:20%; right:12%; bottom:1px; height:2px; background:var(--teal); }
.logo__role { position:relative; left:.42em;   /* на ¾ буквы правее: по центру под наклонным именем и его чертой */
  margin-top:calc(5px * var(--k)); font-size:calc(20px * var(--k)); line-height:1.1; font-weight:500; color:var(--ink); white-space:nowrap; }
.nav-toggle { display:none; }
.main-nav { position:relative; z-index:1; margin-left:calc(34px * var(--k)); }   /* меню правее светлой полосы логотипа */
.main-nav .menu { display:flex; flex-wrap:wrap; gap:calc(6px * var(--k)) calc(15px * var(--k)); margin:0; padding:0; list-style:none; }
.main-nav .menu a { display:block; padding:calc(6px * var(--k)) 0; color:#fff; font-size:calc(20px * var(--k)); font-weight:500; text-transform:uppercase; text-decoration:none; letter-spacing:.01em; }
.main-nav .menu a { -webkit-text-stroke: calc(var(--fw-boost, 0px) + .3px) currentColor; }   /* пункты меню чуть плотнее текста */
.main-nav .menu a:hover, .main-nav .menu a[aria-current="page"] { color:var(--menu-active); }

/* значки соцсетей */
.social { display:flex; gap:calc(6px * var(--k)); margin:0; padding:0; list-style:none; }
.social a { display:block; width:calc(34px * var(--k)); height:calc(34px * var(--k)); color:#fff; transition:color .15s, transform .15s; }
.social svg { display:block; width:100%; height:100%; fill:currentColor; }
.social a:hover { transform:translateY(-1px); }
.social a:hover, .social a:focus-visible { color:#0c6284; }
.social--footer a:hover, .social--footer a:focus-visible { color:var(--brand-bg); }
.social--header { position:relative; z-index:1; margin-left:auto; }
.social--header a { width:calc(32px * var(--k)); height:calc(32px * var(--k)); }
.social--nav { display:none; }
/* личный кабинет: значок в шапке — в 1,69 раза крупнее значков соцсетей (дважды +30%), цвета имени в логотипе, ровно
   посередине между «Обо мне» и первым значком соцсетей (заказчик, 07.10.2026); на телефоне вместо него — последний
   пункт меню */
.account-link { position:relative; z-index:1; flex:none; display:block; margin:0 auto; width:calc(54.08px * var(--k)); height:calc(54.08px * var(--k)); color:var(--ink); transition:color .15s, transform .15s; }
.account-link svg { display:block; width:100%; height:100%; fill:currentColor; }
.account-link:hover { transform:translateY(-1px); }
.account-link:hover, .account-link:focus-visible { color:var(--btn-hover); }
/* свободное место делится поровну слева и справа от значка (margin:auto); чтобы шесть пунктов меню остались в одной
   строке, обязательные промежутки по обе стороны от него уменьшены одинаково */
@media (min-width: 1101px) {
  .has-account .main-nav { margin-right:calc(-16px * var(--k)); }
  .account-link + .social--header { margin-left:calc(-16px * var(--k)); }
}
.main-nav .menu .menu__account { display:none; }
.social--footer { margin-top:calc(14px * var(--k)); }
.social--footer a { width:calc(30px * var(--k)); height:calc(30px * var(--k)); }

/* ---------- первый экран ---------- */
.hero { position:relative; padding:calc(56px * var(--k)) calc(42px * var(--k)) calc(96px * var(--k)); min-height:calc(100vh - var(--header-h)); }

.calc-form { margin-top:calc(42px * var(--k)); display:grid; gap:calc(21px * var(--k)); }
.field { position:relative; }
.field input, .field select {
  display:block; width:100%; height:calc(53px * var(--k)); padding:0 calc(17px * var(--k)); border: 0; border-radius:var(--radius);
  background:#fff; color:var(--text); font:400 calc(19px * var(--k))/1.2 var(--font); appearance:none; -webkit-appearance:none;
}
.field input::placeholder { color:var(--ph); opacity:1; }
.field select { cursor:pointer; padding-right:calc(40px * var(--k)); background-repeat:no-repeat; background-size:calc(6px * var(--k)) calc(6px * var(--k));
  background-image:linear-gradient(45deg, transparent 50%, var(--ph) 50%), linear-gradient(135deg, var(--ph) 50%, transparent 50%);
  background-position:calc(100% - calc(22px * var(--k))) calc(23px * var(--k)), calc(100% - calc(16px * var(--k))) calc(23px * var(--k)); }
.field:not(.jy-filled) select { color:var(--ph); }
/* страна: поле с подсказками (widget.js) — со стрелкой, как у списка */
.field input[data-jy-country-input] { padding-right:calc(40px * var(--k)); background-repeat:no-repeat; background-size:calc(6px * var(--k)) calc(6px * var(--k));
  background-image:linear-gradient(45deg, transparent 50%, var(--ph) 50%), linear-gradient(135deg, var(--ph) 50%, transparent 50%);
  background-position:calc(100% - calc(22px * var(--k))) 50%, calc(100% - calc(16px * var(--k))) 50%; }
.field select option { color:var(--text); }
.field input::-webkit-calendar-picker-indicator { opacity:.45; cursor:pointer; }
.field .ph { position:absolute; left:calc(17px * var(--k)); top:50%; transform:translateY(-50%); color:var(--ph); font-size:calc(19px * var(--k)); line-height:1; pointer-events:none; }
.field.jy-filled .ph, .field:focus-within .ph { opacity:0; }  /* скрыта глазу, но остается подписью поля */
.field:not(.jy-filled):not(:focus-within) input[type="date"],
.field:not(.jy-filled):not(:focus-within) input[type="time"] { color:transparent; }
.calc-form button {   /* вид кнопок — ниже, в блоке «Кнопки-клавиши» */
  height:calc(56px * var(--k)); margin-top:calc(5px * var(--k)); padding:0 calc(26px * var(--k)); border-radius:var(--radius);
  font:500 calc(21px * var(--k))/1 var(--font); cursor:pointer;
}
.form-msg { margin:0; min-height:1.2em; color:#a0221a; font-size:calc(15px * var(--k)); }
.form-msg:empty { display:none; }
.form-note { margin:calc(14px * var(--k)) 0 0; font-size:calc(14px * var(--k)); color:var(--ink); }
.jyf-list { border-radius:var(--radius); border-color:var(--teal-line); font-family:var(--font); font-size:calc(16px * var(--k)); }
.jyf-opt.jyf-active, .jyf-opt:hover { background:var(--teal-soft); }

/* ---------- разделы ниже первого экрана ---------- */
.section { padding:calc(72px * var(--k)) 0; }
.section--soft { background:rgba(241, 250, 249, .6); }
.section .container { max-width:calc(1140px * var(--k)); }
.section h2 { margin:0 0 calc(28px * var(--k)); font-size:calc(30px * var(--k)); line-height:1.25; font-weight:500; color:var(--ink); }
.section .lead { max-width:calc(760px * var(--k)); margin:calc(-12px * var(--k)) 0 calc(28px * var(--k)); color:var(--muted); }
.features { display:grid; grid-template-columns:repeat(auto-fit, minmax(calc(300px * var(--k)), 1fr)); gap:calc(18px * var(--k)); margin:0; padding:0; list-style:none; }
.features li { padding:calc(22px * var(--k)) calc(24px * var(--k)); background:#fff; border: 1px solid var(--teal-line); border-radius:calc(10px * var(--k)); }
.features h3 { margin:0 0 calc(6px * var(--k)); font-size:calc(18px * var(--k)); font-weight:600; color:var(--ink); }
.features p { margin:0; color:var(--muted); font-size:calc(16px * var(--k)); }
.steps { display:grid; grid-template-columns:repeat(auto-fit, minmax(calc(260px * var(--k)), 1fr)); gap:calc(24px * var(--k)); margin:0; padding:0; list-style:none; counter-reset:step; }
.steps li { position:relative; padding:0 0 0 calc(64px * var(--k)); counter-increment:step; }
.steps li::before { content:counter(step); position:absolute; left:0; top:0; width:calc(46px * var(--k)); height:calc(46px * var(--k)); border-radius:50%;
  background:var(--teal-soft); border: 2px solid var(--teal); color:var(--ink); font-weight:600; font-size:calc(20px * var(--k)); display:grid; place-items:center; }
.steps h3 { margin:calc(8px * var(--k)) 0 calc(6px * var(--k)); font-size:calc(18px * var(--k)); font-weight:600; color:var(--ink); }
.steps p { margin:0; color:var(--muted); font-size:calc(16px * var(--k)); }
.faq details { border-bottom: 1px solid var(--teal-line); }
.faq summary { cursor:pointer; list-style:none; padding:calc(18px * var(--k)) calc(40px * var(--k)) calc(18px * var(--k)) 0; position:relative; font-size:calc(18px * var(--k)); font-weight:500; color:var(--ink); }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; position:absolute; right:calc(6px * var(--k)); top:calc(12px * var(--k)); font-size:calc(26px * var(--k)); color:var(--btn); }
.faq details[open] summary::after { content:"−"; }
.faq details p { margin:0 0 calc(18px * var(--k)); color:var(--muted); max-width:calc(860px * var(--k)); }
.cta { background:rgba(223, 244, 242, .75); padding:calc(56px * var(--k)) 0; border-top: 1px solid var(--teal-line); }
.cta .container { max-width:calc(1140px * var(--k)); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:calc(20px * var(--k)) calc(40px * var(--k)); }
.cta h2 { margin:0 0 calc(6px * var(--k)); color:var(--ink); font-size:calc(28px * var(--k)); font-weight:500; }
.cta p { margin:0; color:var(--ink); max-width:calc(640px * var(--k)); }
.button { display:inline-block; padding:calc(16px * var(--k)) calc(29px * var(--k)); border-radius:var(--radius);
  font-weight:500; font-size:calc(18px * var(--k)); line-height:1.2; text-decoration:none; }

/* ---------- страница «Расчет карты» ---------- */
.page-head { padding:calc(40px * var(--k)) 0 calc(8px * var(--k)); }
.page-head h1 { margin:0; font-size:calc(34px * var(--k)); line-height:1.2; font-weight:500; color:var(--ink); }
.page-head p { margin:calc(10px * var(--k)) 0 0; max-width:calc(860px * var(--k)); color:var(--muted); }
.page-head p.page-head__actions { margin:calc(28px * var(--k)) 0 calc(48px * var(--k)); }
.service-frame { width:100%; min-height:calc(300px * var(--k)); border: 0; display:block; background:transparent; }
.calc-wrap { padding:calc(16px * var(--k)) 0 calc(40px * var(--k)); }
.calc-wrap[hidden] { display:none; }
.page-head .container, .calc-wrap .container, .calc-page-form .container { max-width:calc(1400px * var(--k)); }
.calc-page-form .calc-strip { margin-top:calc(18px * var(--k)); }
/* блок с картой: тот же градиент, что у полосы с формой; в правом верхнем углу — переключатель «БАЗОВАЯ версия / PRO версия»
   (кнопки «Раси (D-1)», «Дробные карты», «Аспекты» и «Карта чакр» рисует окно сервиса — над таблицей чара-карак) */
.result-card { max-width:calc(1340px * var(--k)); margin:0 auto; padding:calc(22px * var(--k)) calc(32px * var(--k)) calc(20px * var(--k));
  border-radius:var(--radius-card); background:var(--strip-bg); box-shadow: 0 6px 24px rgba(12, 98, 132, .12); }
.result-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:calc(10px * var(--k)) calc(16px * var(--k)); margin-bottom:calc(14px * var(--k)); }
.result-card h2 { margin:0; font-size:calc(26px * var(--k)); line-height:1.2; font-weight:500; color:var(--ink); }
.result-tools { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:calc(12px * var(--k)); margin-left:auto; }   /* кнопки всегда в правом углу, даже если строка перенеслась */
.result-btn { display:inline-flex; align-items:center; justify-content:center; height:calc(53px * var(--k)); padding:0 calc(26px * var(--k)); border-radius:var(--radius);
  font:500 calc(19px * var(--k))/1 var(--font); text-decoration:none; white-space:nowrap;
  -webkit-text-stroke: var(--fw-boost, 0) currentColor; cursor:pointer; }
.result-toggle:focus-visible, .result-chakra:focus-visible, .version-switch .result-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
/* переключатель версии — как РУС / ENG: две кнопки вплотную, одной ширины (чуть уже кнопок окна сервиса), нажатая утоплена */
.version-switch { display:flex; margin-left:auto; }
.version-switch .result-btn { width:calc(170px * var(--k)); margin:0; padding:0 calc(6px * var(--k)); border-radius:0; font-size:calc(18px * var(--k)); }
.version-switch .result-btn:first-child { border-radius:var(--radius) 0 0 var(--radius); }
.version-switch .result-btn:last-child { border-radius:0 var(--radius) var(--radius) 0; margin-left:-1px; }
/* показ PRO версии: страница затемнена и не откликается, поверх — окно о подписке; закрывается только крестиком */
.pro-shade { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:16px; background:rgba(22, 32, 36, .34); }
.pro-shade[hidden] { display:none; }
.pro-modal { position:relative; width:min(calc(660px * var(--k)), 100%); padding:calc(46px * var(--k)) calc(44px * var(--k)) calc(40px * var(--k));
  border-radius:var(--radius-card); background:#eef0f0; box-shadow: 0 18px 60px rgba(0, 0, 0, .3); text-align:center; }
.pro-modal p { margin:0; font-size:calc(29px * var(--k)); line-height:1.36; font-weight:500; color:var(--ink);
  -webkit-text-stroke: var(--fw-boost, 0) currentColor; }
.pro-modal b { font-weight:800; color:#0c4f6b; -webkit-text-stroke:0; }
.pro-modal__close { position:absolute; top:calc(8px * var(--k)); right:calc(8px * var(--k)); width:calc(44px * var(--k)); height:calc(44px * var(--k));
  display:grid; place-items:center; padding:0; border:0; border-radius:var(--radius); background:transparent; color:#0c4f6b; cursor:pointer; }
.pro-modal__close svg { width:calc(26px * var(--k)); height:calc(26px * var(--k)); }
.pro-modal__close:hover { color:#0c6284; background:rgba(12, 98, 132, .08); }
.pro-modal__close:focus-visible { outline: 2px solid var(--btn); outline-offset: 0; }
.pro-modal a { color:#0c4f6b; text-decoration:underline; text-underline-offset:.16em; }
.pro-modal a:focus-visible { outline: 2px solid var(--btn); outline-offset: 3px; border-radius: 3px; }
/* вошедший с подпиской PRO: заголовок «Натальная карта» рисует окно сервиса (рядом с ним «Мои карты»), переключателя
   версий нет — десять кнопок окна начинаются на уровне заголовка */
.result-card.is-pro .result-head { display:none; }
.result-card.is-empty .service-frame { min-height:0; }   /* с подпиской, карты нет: в окне только строка с «Мои карты» */
/* страница «Личный кабинет»: окно сервиса в таком же блоке, как карта */
.account-wrap { padding-bottom:calc(72px * var(--k)); }
.account-wrap .service-frame { min-height:calc(260px * var(--k)); }


/* ---------- подвал ---------- */
.site-footer { background:var(--ink); color:#fff; padding:calc(36px * var(--k)) 0 calc(28px * var(--k)); font-size:calc(15px * var(--k)); }
.site-footer .container { max-width:calc(1140px * var(--k)); display:flex; flex-wrap:wrap; gap:calc(16px * var(--k)) calc(40px * var(--k)); justify-content:space-between; align-items:flex-start; }
.site-footer ul { display:flex; flex-wrap:wrap; gap:calc(6px * var(--k)) calc(22px * var(--k)); margin:0; padding:0; list-style:none; }
.site-footer .social { gap:calc(6px * var(--k)); }   /* как у значков в шапке */
.site-footer a { color:#fff; text-decoration:none; }
.site-footer a:hover { text-decoration:underline; }
.site-footer .copy { margin:0; }

/* ---------- главная: представление, фото, форма расчета ---------- */
.overline { margin:0 0 calc(14px * var(--k)); font-size:calc(15px * var(--k)); font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--teal); }
.person h1 { margin:0; font-size:calc(46px * var(--k)); line-height:1.12; font-weight:500; color:var(--ink); }
.person h1 .name { font-family:var(--font-name); font-weight:400; font-size:1.25em; line-height:1; display:block; margin-bottom:calc(4px * var(--k)); }
.person .lead { margin:calc(20px * var(--k)) 0 0; max-width:calc(620px * var(--k)); font-size:calc(19px * var(--k)); line-height:1.55; color:#33474f; }
.credential { display:flex; align-items:center; gap:calc(12px * var(--k)); margin:calc(22px * var(--k)) 0 0; font-size:calc(17px * var(--k)); line-height:1.35; color:var(--ink); }
.credential picture, .logo__mark picture { display:block; flex:none; }
.credential img { width:calc(38px * var(--k)); height:calc(23px * var(--k)); flex:none; }
.credential a { color:var(--ink); font-weight:600; }
.credential small { display:block; font-size:calc(15px * var(--k)); color:var(--muted); }
.actions { display:flex; flex-wrap:wrap; gap:calc(14px * var(--k)); margin-top:calc(30px * var(--k)); }
.photo { display:block; width:100%; max-width:calc(360px * var(--k)); margin-left:auto; }
.photo img { width:100%; height:auto; aspect-ratio:710 / 895; object-fit:cover; object-position:50% 30%;
  border-radius:var(--radius-card); box-shadow: 0 10px 30px rgba(128, 211, 201, .8), 0 2px 8px rgba(128, 211, 201, .6); background:var(--teal-soft); }

.hero-home { padding:calc(36px * var(--k)) calc(42px * var(--k)) calc(40px * var(--k)); min-height:0; }
.hero-home .person { max-width:calc(1340px * var(--k)); margin:0 auto; display:grid; grid-template-columns:minmax(0, 1fr) calc(360px * var(--k)); gap:calc(60px * var(--k)); align-items:center; }
.calc-strip { max-width:calc(1340px * var(--k)); margin:calc(30px * var(--k)) auto 0; padding:calc(26px * var(--k)) calc(32px * var(--k)) calc(28px * var(--k)); border-radius:var(--radius-card); box-shadow: 0 6px 24px rgba(12, 98, 132, .12);
  background:var(--strip-bg); }
.calc-strip .strip-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:calc(4px * var(--k)) calc(16px * var(--k)); margin-bottom:calc(16px * var(--k)); }
.calc-strip h2 { margin:0; font-size:calc(26px * var(--k)); line-height:1.2; font-weight:500; color:var(--ink); }
/* поля в одну строку: имя, страна, город, широта, долгота, дата, время; ниже справа — кнопки */
.calc-form--strip { margin-top:0; grid-template-columns:1.25fr 1.05fr 1.15fr 1fr 1fr 1.1fr .85fr; gap:calc(12px * var(--k)); align-items:start; }
.calc-form--strip .field input, .calc-form--strip .field select, .calc-form--strip .field .ph { font-size:calc(18px * var(--k)); }
.calc-form--strip button { margin-top:0; height:calc(53px * var(--k)); font-size:calc(19px * var(--k)); }
.form-row2 { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:calc(12px * var(--k)) calc(20px * var(--k)); }
.form-buttons { display:flex; gap:calc(12px * var(--k)); margin-left:auto; flex:none; }
/* значок лотоса и proastromir.ru слева внизу формы (рисунок заказчика ЛК-4, 09.10.2026; цвет — 09.10 вечер) */
/* адрес — на полбуквы ближе к лотосу (заказчик, 10.10.2026: средняя буква «proastromir.ru» ≈ 10,8 px → промежуток 11 − 5,5) */
.form-brand { display:none; align-items:center; gap:calc(5.5px * var(--k)); flex:none; color:var(--ink);
  font-size:calc(24px * var(--k)); font-weight:500; line-height:1; letter-spacing:.01em; white-space:nowrap; user-select:none; }
.form-brand img { display:block; width:calc(58px * var(--k)); height:auto; flex:none; }
/* на компьютере — по рисунку заказчика (09.10.2026, вечер): по высоте посередине между нижним краем полей ввода и
   нижним краем плашки (кнопки — у правого края, им не мешает); сообщение под формой начинается правее значка.
   Середина: (промежуток 12 + кнопки 53 + отступ плашки 46) / 2 = 55,5 ниже полей, то есть 43,5 ниже верха строки кнопок;
   значок высотой 33,5 → top 26,75 от строки кнопок (от нее, а не от низа плашки: сообщение под формой его не сдвигает).
   В мобильной версии (уже 1101 px) значка и адреса нет — решение заказчика 09.10.2026 */
@media (min-width: 1101px) {
  .calc-strip { padding-bottom:calc(46px * var(--k)); }        /* (было 28) */
  .calc-form--strip .form-row2 { position:relative; }
  .calc-form--strip .form-brand { display:flex; position:absolute; left:0; top:calc(26.75px * var(--k)); }
  .calc-form--strip .form-msg:not(:empty) { padding-left:calc(270px * var(--k)); }
}
.form-buttons button { flex:1 1 auto; white-space:nowrap; }
.calc-form--strip .form-msg, .calc-form--strip .form-note { grid-column:1 / -1; }
@media (min-width: 1101px) { [data-jy-long] { display:none; } }   /* «Дата», «Время» — узкие поля в одной строке */
/* после расчета по координатам: город не найден — отправить на проверку */
.review { flex:1 1 calc(520px * var(--k)); min-width:0; display:flex; align-items:center; gap:calc(10px * var(--k)) calc(16px * var(--k)); }
.review[hidden] { display:none; }
.review__text { margin:0; font-size:calc(15px * var(--k)); line-height:1.4; color:var(--ink); }
.calc-form .review__send { flex:none; white-space:nowrap; }
/* РУС / ENG — в правом верхнем углу полосы (страница «Расчет карты») */
.calc-strip { position:relative; }
.calc-form .lang-switch { position:absolute; top:calc(22px * var(--k)); right:calc(32px * var(--k)); display:flex; }
.calc-form .lang-switch button { height:calc(38px * var(--k)); margin:0; padding:0 calc(16px * var(--k)); border-radius:0;
  font-size:calc(16px * var(--k)); letter-spacing:.03em; }
.calc-form .lang-switch button:first-child { border-radius:var(--radius) 0 0 var(--radius); }
.calc-form .lang-switch button:last-child { border-radius:0 var(--radius) var(--radius) 0; margin-left:-1px; }

/* ---------- Кнопки-клавиши (04.10.2026): выпуклая — отжата, утопленная — нажата ----------
   (07.10.2026: светлой полоски под кнопкой нет — заказчик: низ рамки такой же, как верх) */
/* темные: «Рассчитать карту», «Записаться на консультацию» */
.button, .calc-form button, .result-btn {
  border: 1px solid var(--btn-edge);
  background: linear-gradient(to bottom, var(--btn-hi) 0%, var(--btn) 55%, var(--btn-lo) 100%);
  color:#fff; text-shadow: 0 -1px 0 rgba(0, 0, 0, .38);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), 0 2px 5px rgba(6, 58, 80, .25);
  transition: filter .1s, box-shadow .1s;
}
.button:hover, .calc-form button:hover, .result-btn:hover { color:#fff; filter: brightness(1.09); }
/* светлые: «Сброс карты», «Отправить на проверку», «Читать публикации», «Карта чакр», невыбранный язык,
   отжатые «Аспекты» и «Саде-Сати» */
.button--ghost, .calc-form .calc-reset, .calc-form .review__send, .calc-form .lang-switch button,
.result-toggle, .result-chakra, .version-switch .result-btn {
  border: 1px solid var(--btnl-edge);
  background: linear-gradient(to bottom, var(--btnl-hi) 0%, #ecf9f7 45%, var(--btnl-lo) 100%);
  color:var(--ink); text-shadow: 0 1px 0 rgba(255, 255, 255, .95);
  box-shadow: inset 0 1px 0 #fff, 0 2px 5px rgba(6, 58, 80, .18);
}
.button--ghost:hover, .calc-form .calc-reset:hover, .calc-form .review__send:hover, .calc-form .lang-switch button:hover,
.result-toggle:hover, .result-chakra:hover, .version-switch .result-btn:hover { color:var(--ink); filter: brightness(1.04); }
.button--ghost:active, .calc-form .calc-reset:active, .calc-form .review__send:active, .result-chakra:active {
  border-color:#3c8793; background: linear-gradient(to bottom, #a9d8d2 0%, #c6e8e3 100%);
  text-shadow: 0 1px 0 rgba(255, 255, 255, .6);
  box-shadow: inset 0 3px 6px rgba(6, 58, 80, .38); filter:none;
}
/* нажатые: темная кнопка в момент нажатия; включенные «Аспекты», «Саде-Сати»; выбранный язык РУС / ENG */
.button:not(.button--ghost):active, .calc-form button[type="submit"]:active,
.result-toggle:active, .result-toggle[aria-pressed="true"], .calc-form .lang-switch button.is-active,
.version-switch .result-btn:active, .version-switch .result-btn.is-active {
  border-color: var(--btn-press-edge);
  background: linear-gradient(to bottom, var(--btn-press-hi) 0%, var(--btn-press-lo) 100%);
  color:#d9edf3; text-shadow: 0 -1px 0 rgba(0, 0, 0, .55);
  box-shadow: inset 0 3px 7px rgba(0, 0, 0, .55), inset 0 0 0 1px rgba(0, 0, 0, .12);
  filter:none;
}
.calc-form .review__send:disabled { opacity:.55; cursor:default; filter:none; }

/* анонсы разделов */
.teasers { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:calc(20px * var(--k)); margin:0; padding:0; list-style:none; }
.teasers li { display:flex; flex-direction:column; padding:calc(28px * var(--k)) calc(26px * var(--k)); border-radius:calc(12px * var(--k)); background:#fff; border: 1px solid var(--teal-line); box-shadow: 0 4px 16px rgba(12, 98, 132, .06); }
.teasers h3 { margin:0 0 calc(8px * var(--k)); font-size:calc(21px * var(--k)); font-weight:600; color:var(--ink); }
.teasers p { margin:0 0 calc(18px * var(--k)); color:var(--muted); font-size:calc(16px * var(--k)); flex:1; }
.teasers a.more { font-weight:600; text-decoration:none; }
.teasers a.more::after { content:" →"; }

/* ---------- планшеты и телефоны ---------- */
/* узкий компьютер (1101–1199 px): меню чуть плотнее, чтобы 6 пунктов и значки поместились в одну строку */
@media (max-width: 1199px) {
  .main-nav { margin-left:calc(22px * var(--k)); }
  .main-nav .menu { gap:calc(6px * var(--k)) calc(12px * var(--k)); }
  .main-nav .menu a { font-size:calc(19px * var(--k)); }
}
@media (max-width: 1100px) {
  .teasers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :root { --header-h: 88px; }
  .site-header .container { gap: 12px; justify-content: space-between; }
  .logo { gap: 8px; }
  .logo__mark img { width: 64px; height: 39px; }
  .logo__brand { font-size: 11px; }
  .logo__name { font-size: 29px; padding-bottom: 5px; }
  .logo__role { font-size: 15px; }
  .logo::before { left: -24px; right: -50px; }
  .logo__text { margin-left: -13px; }
  .nav-toggle { display: inline-flex; position: relative; z-index: 2; align-items: center; justify-content: center; width: 48px; height: 48px;
    border: 0; border-radius: var(--radius); background: rgba(255, 255, 255, .3); color: #fff; cursor: pointer; }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after { display: block; width: 24px; height: 2px; background: currentColor; position: relative; content: ""; }
  .nav-toggle span::before { position: absolute; top: -7px; } .nav-toggle span::after { position: absolute; top: 7px; }
  .main-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; margin: 0; background: var(--brand-bg); box-shadow: 0 8px 16px rgba(6, 60, 70, .2); }
  .social--header { display: flex; margin-left: auto; padding-left: 0; }
  .account-link { display: none; }
  .main-nav .menu .menu__account { display: block; }
  .nav-toggle { order: 3; }
  .main-nav.is-open { display: block; }
  .main-nav .menu { flex-direction: column; gap: 0; padding: 8px 24px 16px; }
  .main-nav .menu a { padding: 12px 0; font-size: 18px; border-bottom: 1px solid rgba(255, 255, 255, .35); }
  body { background-size: 1400px auto; background-position: 70% top; }
  .hero { padding: 28px 16px 48px; min-height: 0; }
  .hero-home .person { grid-template-columns: 1fr; gap: 26px; }
  .photo { order: -1; max-width: 520px; margin: 0 auto; }
  .photo img { aspect-ratio: 4 / 3; object-position: 50% 30%; }
  .calc-form--strip { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .calc-form--strip .field--name { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .container { padding: 0 16px; }
  .logo__mark img { width: 52px; height: 32px; }
  .logo__brand { font-size: 10px; letter-spacing: .02em; }
  .logo__name { font-size: 23px; }
  .logo__role { font-size: 12.5px; }
  .logo__text { margin-left: -11px; }
  /* телефон: логотип посередине между левым краем и кнопкой меню, светлая полоса — симметрично вокруг него */
  .logo { margin: 0 auto; }
  .logo::before { left: -50px; right: -50px; }
  .calc-form { margin-top: 26px; gap: 14px; }
  .field input, .field select, .field .ph { font-size: 17px; }
  .field input, .field select { height: 50px; }
  .calc-form button { font-size: 19px; height: 54px; }
  .section { padding: 48px 0; }
  .section h2 { font-size: 24px; }
  .page-head h1 { font-size: 26px; }
  .service-frame { min-height: 300px; }
  .form-buttons { flex-direction: column; margin-left: 0; }
  .form-row2 { flex-direction: column; align-items: stretch; }
  .review { flex: none; flex-direction: column; align-items: stretch; }   /* высота по содержимому: без пустоты под кнопкой */
  .calc-form .lang-switch { top: 20px; right: 18px; }
  .calc-strip h2 { font-size: 22px; }
  .calc-strip--page .strip-head { padding-right: 116px; }   /* заголовок не заходит под РУС / ENG */
  .calc-form .lang-switch button { height: 36px; padding: 0 13px; font-size: 15px; }
  .person h1 { font-size: 30px; }
  .person .lead { font-size: 17px; }
  .calc-strip { padding: 22px 18px; }
  .result-card { padding: 16px 10px 12px; }
  .result-head { padding: 0 6px; }
  .result-head { gap: 10px; }
  .result-card h2 { font-size: 20px; }
  .result-tools { width: 100%; flex-wrap: nowrap; gap: 8px; }
  .version-switch { width: 100%; }                                /* телефон: переключатель во всю ширину под заголовком */
  .version-switch .result-btn { width: auto; font-size: 15px; }
  .pro-modal { padding: 44px 20px 28px; }
  .pro-modal p { font-size: 20px; }
  .pro-modal__close { top: 4px; right: 4px; width: 44px; height: 44px; }
  .pro-modal__close svg { width: 22px; height: 22px; }
  .result-btn { flex: 1 1 0; min-width: 0; height: 44px; padding: 0 6px; font-size: 15px; }
  .social--header { display: none; }
  .social--nav { display: flex; padding: 4px 24px 18px; }
  .teasers { grid-template-columns: 1fr; }
  .actions .button { width: 100%; text-align: center; }
  .calc-form--strip { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }   /* широта | долгота, дата | время — парами */
  .calc-form--strip .field--name, .calc-form--strip .field--country, .calc-form--strip .field--city { grid-column: 1 / -1; }
  /* поле даты не распирает колонку: поля и кнопки не выходят за край плашки */
  .calc-form--strip .field, .calc-form--strip .field input, .calc-form--strip .field select { min-width: 0; }
}
@media (max-width: 400px) {   /* узкий телефон: дата и время целиком помещаются в свои половины */
  .calc-form--strip .field--date input, .calc-form--strip .field--time input { padding: 0 9px; font-size: 16px; }
  .result-tools { gap: 6px; }
  .result-btn { padding: 0 4px; font-size: 14px; }
}
@media (max-width: 340px) { .result-btn { font-size: 12.5px; padding: 0 2px; } }

/* ---------- «Публикации» (макет 12.10.2026; без «хлебных крошек» и кнопки Telegram в плашке — правки заказчика) ----------
   Компьютер: плашка раздела, ниже список статей (поиск, рубрики) и статья. Телефон и планшет (до 900 px): /publikacii/ —
   только список карточками, /publikacii/<адрес>/ — только статья с полосой «← Все публикации». */
.pub-ico { display:block; fill:none; }
.pub-container { max-width:calc(1400px * var(--k)); padding-top:calc(28px * var(--k)); padding-bottom:calc(64px * var(--k)); }
.pub-strip { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:calc(14px * var(--k)) calc(24px * var(--k));
  padding:calc(25px * var(--k)) calc(32px * var(--k)); border-radius:var(--radius-card); background:var(--strip-bg); box-shadow: 0 6px 24px rgba(12, 98, 132, .12); }
.pub-strip__text { display:flex; flex-direction:column; gap:calc(5px * var(--k)); }
.pub-strip__over { font-size:calc(14px * var(--k)); font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); }
.pub-strip__title { margin:0; font-size:calc(35px * var(--k)); line-height:1.15; font-weight:500; color:var(--ink); text-decoration:none;
  -webkit-text-stroke: var(--fw-boost, 0) currentColor; }
.pub-strip__sub { font-size:calc(17.5px * var(--k)); color:var(--text); }
.pub-strip__count { font-size:calc(16px * var(--k)); font-weight:600; color:var(--ink); }
.pub-strip__count-m { display:none; }
.pub-layout { display:grid; grid-template-columns:minmax(calc(300px * var(--k)), 1fr) minmax(0, 3fr); gap:calc(30px * var(--k)); align-items:start; margin-top:calc(28px * var(--k)); }
.pub-aside, .pub-main, .pub-none { background:#fff; border: 1px solid var(--teal-line); border-radius:calc(12px * var(--k)); box-shadow: 0 4px 16px rgba(12, 98, 132, .06); }
.pub-main:only-child { grid-column:1 / -1; }

/* список статей: прилипает к верху окна, длинный список прокручивается внутри */
.pub-aside { position:sticky; top:calc(16px * var(--k)); max-height:calc(100vh - 32px * var(--k)); display:flex; flex-direction:column;
  padding:calc(20px * var(--k)) calc(15px * var(--k)) calc(16px * var(--k)); }
.pub-search { position:relative; flex:none; margin:0 calc(2px * var(--k)); }
.pub-search .pub-ico { position:absolute; left:calc(13px * var(--k)); top:50%; width:calc(20px * var(--k)); height:calc(20px * var(--k)); transform:translateY(-50%); color:var(--muted); pointer-events:none; }
.pub-search input { display:block; width:100%; height:calc(48px * var(--k)); padding:0 calc(12px * var(--k)) 0 calc(42px * var(--k)); border: 1px solid var(--teal-line);
  border-radius:var(--radius); background:#fff; color:var(--text); font:400 calc(17px * var(--k))/1.2 var(--font); -webkit-appearance:none; appearance:none; }
.pub-search input::placeholder { color:var(--ph); opacity:1; }
.pub-search input:focus { border-color:var(--ink); }
.pub-chips { flex:none; display:flex; flex-wrap:wrap; gap:calc(8px * var(--k)); margin:calc(15px * var(--k)) calc(2px * var(--k)) 0; }
/* рубрики — кнопки-клавиши сайта: отжатая светлая, выбранная утоплена */
.pub-chip { height:calc(38px * var(--k)); padding:0 calc(14px * var(--k)); border-radius:var(--radius); font:500 calc(15.5px * var(--k))/1 var(--font); white-space:nowrap; cursor:pointer;
  -webkit-text-stroke: var(--fw-boost, 0) currentColor;
  border: 1px solid var(--btnl-edge); background: linear-gradient(to bottom, var(--btnl-hi) 0%, #ecf9f7 45%, var(--btnl-lo) 100%);
  color:var(--ink); text-shadow: 0 1px 0 rgba(255, 255, 255, .95); box-shadow: inset 0 1px 0 #fff, 0 2px 5px rgba(6, 58, 80, .18); transition: filter .1s; }
.pub-chip:hover { filter: brightness(1.04); }
.pub-chip[aria-pressed="true"] { border-color: var(--btn-press-edge); background: linear-gradient(to bottom, var(--btn-press-hi) 0%, var(--btn-press-lo) 100%);
  color:#d9edf3; text-shadow: 0 -1px 0 rgba(0, 0, 0, .55); box-shadow: inset 0 3px 7px rgba(0, 0, 0, .55), inset 0 0 0 1px rgba(0, 0, 0, .12); filter:none; }
.pub-sort { flex:none; align-self:flex-start; display:inline-flex; align-items:center; gap:calc(7px * var(--k)); margin:calc(17px * var(--k)) calc(6px * var(--k)) calc(6px * var(--k)); padding:calc(3px * var(--k)) 0;
  border:0; background:none; color:var(--muted); font:600 calc(13.5px * var(--k))/1.2 var(--font); letter-spacing:.07em; text-transform:uppercase; cursor:pointer; }
.pub-sort .pub-ico { width:calc(15px * var(--k)); height:calc(15px * var(--k)); }
.pub-sort:hover { color:var(--ink); }
.pub-list { list-style:none; min-height:0; margin:0; padding:0 calc(2px * var(--k)) 0 0; display:flex; flex-direction:column; gap:calc(3px * var(--k));
  overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--teal-line) transparent; }
.pub-list li[hidden] { display:none; }
.pub-item { display:flex; align-items:flex-start; gap:calc(10px * var(--k)); padding:calc(12px * var(--k)) calc(12px * var(--k)) calc(13px * var(--k)) calc(15px * var(--k));
  border-radius:var(--radius); color:var(--ink); text-decoration:none; }
.pub-item:hover { box-shadow: inset 0 0 0 1px var(--teal-line); }
.pub-item.is-current { background:var(--teal-soft); }
.pub-item__text { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:calc(4px * var(--k)); }
.pub-item__meta { font-size:calc(14px * var(--k)); color:var(--muted); }
.pub-item__read, .pub-item__lead { display:none; }
.pub-item__title { font-size:calc(17.5px * var(--k)); font-weight:600; line-height:1.32; color:var(--ink); }
.pub-item.is-current .pub-item__title { color:#063a50; }
.pub-item > .pub-ico { flex:none; width:calc(20px * var(--k)); height:calc(20px * var(--k)); margin-top:calc(22px * var(--k)); color:var(--ink); visibility:hidden; }
.pub-item.is-current > .pub-ico { visibility:visible; }
.pub-nothing { margin:0; padding:calc(16px * var(--k)) calc(12px * var(--k)); font-size:calc(17px * var(--k)); color:var(--muted); }
.pub-nothing button { margin-left:4px; padding:0; border:0; background:none; color:var(--ink); font:inherit; font-weight:600; text-decoration:underline; cursor:pointer; }

/* статья */
.pub-main { min-width:0; padding:calc(42px * var(--k)) calc(58px * var(--k)) calc(50px * var(--k)); }
.pub-draft { margin:0 0 calc(22px * var(--k)); padding:calc(10px * var(--k)) calc(16px * var(--k)); border: 1px solid #e3c873; border-radius:var(--radius);
  background:#fff6db; color:#634800; font-size:calc(16px * var(--k)); }
.pub-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:calc(12px * var(--k)) calc(20px * var(--k)); }
.pub-meta__info { display:flex; flex-wrap:wrap; align-items:center; gap:calc(8px * var(--k)) calc(12px * var(--k)); }
.pub-rubric { padding:calc(4px * var(--k)) calc(12px * var(--k)); border-radius:calc(5px * var(--k)); background:var(--teal-soft); color:var(--ink); font-size:calc(15px * var(--k)); font-weight:600; }
.pub-date { font-size:calc(16px * var(--k)); color:var(--muted); }
.pub-share { display:flex; align-items:center; gap:calc(8px * var(--k)); }
.pub-share__label { margin-right:calc(2px * var(--k)); font-size:calc(15.5px * var(--k)); color:var(--muted); }
.pub-share__btn { display:grid; place-items:center; width:calc(38px * var(--k)); height:calc(38px * var(--k)); padding:0; border: 1px solid var(--teal-line); border-radius:50%;
  background:#fff; color:var(--ink); cursor:pointer; transition: background .15s, border-color .15s; }
.pub-share__btn svg { width:calc(18px * var(--k)); height:calc(18px * var(--k)); }
.pub-share__btn svg:not(.pub-ico) { fill:currentColor; }
.pub-share__btn:hover { background:var(--teal-soft); border-color:#8fcfc6; }
.pub-title { margin:calc(20px * var(--k)) 0 0; max-width:calc(950px * var(--k)); font-size:calc(40px * var(--k)); line-height:1.2; font-weight:600; color:var(--ink); }
.pub-title:focus { outline:none; }
.pub-lead { margin:calc(18px * var(--k)) 0 0; max-width:calc(900px * var(--k)); font-size:calc(21px * var(--k)); font-weight:500; line-height:1.6; color:var(--text);
  -webkit-text-stroke: var(--fw-boost, 0) currentColor; }
.pub-cover { margin:calc(30px * var(--k)) 0 0; }
.pub-cover img { width:100%; aspect-ratio:16 / 6; object-fit:cover; border-radius:calc(10px * var(--k)); background:var(--teal-soft); }
.pub-toc { max-width:calc(900px * var(--k)); margin-top:calc(30px * var(--k)); border: 1px solid var(--teal-line); border-radius:calc(10px * var(--k)); background:#f4fbfa; }
.pub-toc summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:calc(15px * var(--k)) calc(25px * var(--k)) calc(4px * var(--k));
  list-style:none; cursor:pointer; color:var(--ink); font-size:calc(14px * var(--k)); font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.pub-toc summary::-webkit-details-marker { display:none; }
.pub-toc:not([open]) summary { padding-bottom:calc(15px * var(--k)); }
.pub-toc summary .pub-ico { flex:none; width:calc(20px * var(--k)); height:calc(20px * var(--k)); transition: transform .15s; }
.pub-toc[open] summary .pub-ico { transform:rotate(180deg); }
.pub-toc ol { margin:0; padding:0 calc(25px * var(--k)) calc(15px * var(--k)) calc(50px * var(--k)); font-size:calc(17.5px * var(--k)); line-height:1.8; }
.pub-toc a { color:var(--ink); }
.pub-body { max-width:calc(900px * var(--k)); }
.pub-body > section:first-child > :first-child:not(.pub-h) { margin-top:calc(30px * var(--k)); }
.pub-h { margin:calc(38px * var(--k)) 0 calc(12px * var(--k)); font-size:calc(27.5px * var(--k)); line-height:1.3; font-weight:600; color:var(--ink); scroll-margin-top:calc(16px * var(--k)); }
.pub-body p, .pub-body ul, .pub-body ol { margin:0 0 calc(17px * var(--k)); font-size:calc(19.4px * var(--k)); line-height:1.75; }
.pub-body ul, .pub-body ol { padding-left:calc(28px * var(--k)); }
.pub-body li::marker { color:var(--teal); }
.pub-body ol > li::marker { font-weight:600; }
.pub-body li + li { margin-top:calc(2px * var(--k)); }
.pub-body a { color:var(--ink); text-underline-offset:.15em; }
.pub-body strong { font-weight:600; }
.pub-table { margin:calc(8px * var(--k)) 0 calc(22px * var(--k)); overflow-x:auto; }
.pub-table table { min-width:min(100%, calc(525px * var(--k))); border-collapse:collapse; font-size:calc(18px * var(--k)); }
.pub-table th { padding:calc(10px * var(--k)) calc(15px * var(--k)); background:var(--teal-soft); color:var(--ink); font-size:calc(15px * var(--k)); font-weight:600;
  letter-spacing:.05em; text-transform:uppercase; text-align:left; }
.pub-table td { padding:calc(8px * var(--k)) calc(15px * var(--k)); border-bottom: 1px solid #e3f3f0; }
.pub-table .num { text-align:right; font-variant-numeric:tabular-nums; }
.pub-note { margin:calc(4px * var(--k)) 0 calc(20px * var(--k)); padding:calc(17px * var(--k)) calc(22px * var(--k)); border: 1px solid var(--teal-line); border-radius:calc(10px * var(--k)); background:#f4fbfa; }
.pub-body .pub-note p, .pub-body .pub-note ul, .pub-body .pub-note ol { margin-bottom:calc(8px * var(--k)); font-size:calc(18px * var(--k)); line-height:1.65; }
.pub-body .pub-note > :last-child { margin-bottom:0; }
.pub-body .pub-note .pub-note__title { margin:0 0 calc(5px * var(--k)); font-size:calc(14px * var(--k)); font-weight:600; line-height:1.4; letter-spacing:.07em; text-transform:uppercase; color:var(--ink); }
/* автор — маленькое фото и «Наталья Урвачева, ведический астролог» (правка заказчика 12.10.2026) */
.pub-author { display:flex; align-items:center; gap:calc(17px * var(--k)); margin-top:calc(40px * var(--k)); padding-top:calc(27px * var(--k)); border-top: 1px solid #e3f3f0; }
.pub-author picture { flex:none; }
.pub-author img { width:calc(70px * var(--k)); height:calc(70px * var(--k)); border-radius:50%; object-fit:cover; border: 1px solid var(--teal-line); background:var(--teal-soft); }
.pub-author p { margin:0; display:flex; flex-direction:column; gap:calc(3px * var(--k)); }
.pub-author__name { font-family:var(--font-name); font-size:calc(30px * var(--k)); line-height:1.1; color:var(--ink); }
.pub-author__role { font-size:calc(16px * var(--k)); color:var(--muted); }
/* консультация: «Записаться на консультацию» раскрывает выбор — Telegram или ВКонтакте (правка заказчика 12.10.2026) */
.pub-cta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:calc(18px * var(--k)) calc(25px * var(--k));
  margin-top:calc(32px * var(--k)); padding:calc(27px * var(--k)) calc(32px * var(--k)); border-radius:var(--radius-card); background:var(--strip-bg); }
.pub-cta p { margin:0; font-size:calc(17.5px * var(--k)); color:var(--text); }
.pub-cta .pub-cta__title { margin-bottom:calc(4px * var(--k)); font-size:calc(25px * var(--k)); font-weight:600; line-height:1.25; color:var(--ink); }
.pub-cta__buttons { display:flex; flex-wrap:wrap; align-items:flex-start; gap:calc(12px * var(--k)); }
.pub-cta .button { display:inline-flex; align-items:center; justify-content:center; height:calc(50px * var(--k)); padding:0 calc(22px * var(--k)); font-size:calc(17.5px * var(--k)); white-space:nowrap; cursor:pointer; }
.pub-consult { position:relative; }
.pub-consult > summary { list-style:none; user-select:none; }
.pub-consult > summary::-webkit-details-marker { display:none; }
.pub-consult > summary::after { content:""; width:.42em; height:.42em; margin-left:.65em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform:translateY(-.18em) rotate(45deg); transition: transform .15s; }
.pub-consult[open] > summary::after { transform:translateY(.12em) rotate(-135deg); }
.pub-consult[open] > summary { border-color: var(--btn-press-edge); background: linear-gradient(to bottom, var(--btn-press-hi) 0%, var(--btn-press-lo) 100%);
  color:#d9edf3; text-shadow: 0 -1px 0 rgba(0, 0, 0, .55); box-shadow: inset 0 3px 7px rgba(0, 0, 0, .55), inset 0 0 0 1px rgba(0, 0, 0, .12); filter:none; }
.pub-consult__menu { position:absolute; right:0; top:calc(100% + 8px * var(--k)); z-index:5; min-width:100%; display:flex; flex-direction:column; gap:calc(8px * var(--k));
  padding:calc(14px * var(--k)); border: 1px solid var(--teal-line); border-radius:calc(10px * var(--k)); background:#fff; box-shadow: 0 12px 32px rgba(6, 58, 80, .22); }
.pub-cta .pub-consult__menu p { margin:0 0 calc(2px * var(--k)); font-size:calc(15px * var(--k)); color:var(--muted); white-space:nowrap; }
.pub-consult__link { display:flex; align-items:center; gap:calc(11px * var(--k)); height:calc(50px * var(--k)); padding:0 calc(15px * var(--k)); border: 1px solid var(--teal-line);
  border-radius:var(--radius); color:var(--ink); font-size:calc(17.5px * var(--k)); font-weight:600; text-decoration:none; transition: background .15s; }
.pub-consult__link svg { flex:none; width:calc(26px * var(--k)); height:calc(26px * var(--k)); fill:currentColor; }
.pub-consult__link--tg svg { color:#2aabee; }
.pub-consult__link--vk svg { color:#0077ff; }
.pub-consult__link:hover { background:var(--teal-soft); }
.pub-pn { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:calc(15px * var(--k)); margin-top:calc(27px * var(--k)); }
.pub-pn__link { display:flex; flex-direction:column; gap:calc(5px * var(--k)); padding:calc(17px * var(--k)) calc(20px * var(--k)); border: 1px solid var(--teal-line); border-radius:calc(10px * var(--k));
  background:#fff; text-decoration:none; transition: background .15s, border-color .15s; }
.pub-pn__link:hover { border-color:#8fcfc6; background:#f4fbfa; }
.pub-pn__next { grid-column:2; align-items:flex-end; text-align:right; }
.pub-pn__label { font-size:calc(14px * var(--k)); font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.pub-pn__title { font-size:calc(18px * var(--k)); font-weight:600; line-height:1.35; color:var(--ink); }
.pub-pn__all, .pub-back { display:none; }
.pub-none { margin-top:calc(28px * var(--k)); padding:calc(44px * var(--k)) calc(32px * var(--k)); text-align:center; }
.pub-none p { margin:0 0 calc(22px * var(--k)); color:var(--muted); }
.pub-none p:last-child { margin:0; }
.pub-toast { position:fixed; left:50%; bottom:calc(28px * var(--k)); z-index:50; padding:calc(11px * var(--k)) calc(20px * var(--k)); border-radius:999px; background:#063a50; color:#fff;
  font-size:calc(16px * var(--k)); box-shadow: 0 8px 24px rgba(0, 0, 0, .25); opacity:0; transform:translate(-50%, 16px); pointer-events:none; transition: opacity .2s, transform .2s; }
.pub-toast.is-on { opacity:1; transform:translate(-50%, 0); }
@media (max-width: 1100px) and (min-width: 901px) {
  .pub-layout { grid-template-columns:minmax(270px, 1fr) minmax(0, 2.4fr); gap:22px; }
  .pub-main { padding:32px 32px 40px; }
}
/* телефон и планшет: список и статья — отдельные экраны (макет «телефон») */
@media (max-width: 900px) {
  .pub-container { padding-top:14px; padding-bottom:40px; }
  .pub-strip { gap:4px; padding:14px 16px; }
  .pub-strip__over, .pub-strip__count { display:none; }
  .pub-strip__count-m { display:inline; }
  .pub-strip__title { font-size:26px; line-height:1.2; }
  .pub-strip__sub { font-size:14px; line-height:1.5; }
  .pub-layout { display:block; margin-top:12px; }
  .pub-aside { position:static; max-height:none; padding:0; border:0; border-radius:0; background:none; box-shadow:none; }
  .pub-search { margin:0; }
  .pub-search .pub-ico { left:13px; width:18px; height:18px; }
  .pub-search input { height:44px; padding-left:40px; border-radius:8px; font-size:16px; }
  .pub-chips { flex-wrap:nowrap; gap:8px; margin:12px -16px 0; padding:0 16px 4px; overflow-x:auto; scrollbar-width:none; }
  .pub-chips::-webkit-scrollbar { display:none; }
  .pub-chip { flex:none; height:40px; padding:0 16px; border-radius:8px; font-size:14px; }
  .pub-sort { display:none; }
  .pub-list { gap:10px; margin-top:12px; padding:0; overflow:visible; }
  .pub-item { padding:13px 16px 14px; border: 1px solid var(--teal-line); border-radius:10px; background:#fff; box-shadow: 0 4px 16px rgba(12, 98, 132, .06); }
  .pub-item.is-current { background:#fff; }
  .pub-item.is-current .pub-item__title { color:var(--ink); }
  .pub-item > .pub-ico { display:none; }
  .pub-item__meta { font-size:12.5px; }
  .pub-item__read { display:inline; }
  .pub-item__title { font-size:17px; line-height:1.3; }
  .pub-item__lead { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:14px; line-height:1.5; color:var(--muted); }
  .pub-nothing { padding:14px 4px; font-size:15px; }
  .pub-view-index .pub-main { display:none; }
  .pub-view-article .pub-strip, .pub-view-article .pub-aside { display:none; }
  .pub-view-article .pub-back { display:flex; align-items:center; justify-content:space-between; height:50px; padding:0 8px 0 6px;
    background:rgba(255, 255, 255, .94); border-bottom: 1px solid var(--teal-line); }
  .pub-back a { display:inline-flex; align-items:center; gap:6px; height:44px; padding:0 10px; color:var(--ink); font-size:15px; font-weight:600; text-decoration:none; }
  .pub-back a .pub-ico { width:18px; height:18px; stroke-width:2.4; }
  .pub-back button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:6px; background:transparent; color:var(--ink); cursor:pointer; }
  .pub-back button .pub-ico { width:20px; height:20px; stroke-width:2; }
  .pub-view-article .pub-container { padding-left:12px; padding-right:12px; }
  .pub-view-article .pub-layout { margin-top:0; }
  .pub-main { padding:0; border:0; border-radius:0; background:none; box-shadow:none; }
  .pub-draft { font-size:14px; }
  .pub-art { padding:20px 18px 22px; background:#fff; border: 1px solid var(--teal-line); border-radius:10px; box-shadow: 0 4px 16px rgba(12, 98, 132, .06); }
  .pub-share { display:none; }
  .pub-rubric { font-size:12.5px; }
  .pub-date { font-size:13px; }
  .pub-title { margin-top:12px; font-size:25px; line-height:1.22; }
  .pub-lead { margin-top:12px; font-size:16.5px; }
  .pub-cover { margin:18px -18px 0; }
  .pub-cover img { aspect-ratio:16 / 9; border-radius:0; }
  .pub-toc { margin-top:18px; border-radius:8px; }
  .pub-toc summary, .pub-toc:not([open]) summary { min-height:46px; padding:0 14px; font-size:13px; }
  .pub-toc ol { padding:0 14px 12px 34px; font-size:15px; line-height:1.9; }
  .pub-body > section:first-child > :first-child:not(.pub-h) { margin-top:22px; }
  .pub-h { margin:26px 0 8px; font-size:20px; }
  .pub-body p, .pub-body ul, .pub-body ol { margin-bottom:14px; font-size:16px; line-height:1.7; }
  .pub-body ul, .pub-body ol { padding-left:22px; }
  .pub-table table { font-size:15px; }
  .pub-table th { font-size:12px; padding:8px 12px; }
  .pub-table td { padding:6px 12px; }
  .pub-note { padding:14px 16px; }
  .pub-body .pub-note p, .pub-body .pub-note ul, .pub-body .pub-note ol { font-size:15px; }
  .pub-body .pub-note .pub-note__title { font-size:12px; }
  .pub-author { gap:12px; margin-top:26px; padding-top:18px; }
  .pub-author img { width:52px; height:52px; }
  .pub-author__name { font-size:22px; }
  .pub-author__role { font-size:13px; }
  .pub-cta { flex-direction:column; align-items:stretch; gap:10px; margin-top:16px; padding:18px 16px; }
  .pub-cta .pub-cta__title { margin-bottom:6px; font-size:19px; line-height:1.3; }
  .pub-cta p { font-size:14.5px; line-height:1.5; }
  .pub-cta__buttons { flex-direction:column; align-items:stretch; gap:10px; }
  .pub-cta__buttons > .button--ghost { order:2; }
  .pub-cta .button, .pub-cta .pub-consult { width:100%; }
  .pub-cta .button { height:48px; font-size:15px; }
  .pub-consult__menu { position:static; margin-top:10px; box-shadow:none; }
  .pub-cta .pub-consult__menu p { white-space:normal; font-size:14px; }
  .pub-consult__link { height:48px; font-size:16px; }
  .pub-pn { display:flex; flex-direction:column; gap:10px; margin-top:16px; }
  .pub-pn__link { padding:14px 16px; border-radius:8px; }
  .pub-pn__next { align-items:flex-start; text-align:left; }
  .pub-pn__label { font-size:12px; }
  .pub-pn__title { font-size:16px; }
  .pub-pn__all { display:flex; align-items:center; justify-content:center; height:48px; color:var(--ink); font-size:15px; font-weight:600; }
  .pub-none { padding:26px 16px; }
  .pub-toast { bottom:20px; font-size:15px; }
}

/* ---------- «Консультации» (14.10.2026): как «Публикации»; слева — кнопки консультаций (клавиши: нажата одна, как
   «Раси (D-1)» / «Дробные карты»), справа — название, вступление, картинка, текст. Телефон: кнопки над описанием. ---------- */
.kons-aside { gap:calc(10px * var(--k)); }
.kons-aside__label { margin:0 calc(4px * var(--k)) calc(2px * var(--k)); color:var(--muted); font-size:calc(13.5px * var(--k)); font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.kons-list { display:flex; flex-direction:column; gap:calc(10px * var(--k)); min-height:0; overflow-y:auto; padding:2px 2px 6px; scrollbar-width:thin; }
.kons-btn { display:flex; align-items:center; justify-content:center; min-height:calc(56px * var(--k)); padding:calc(10px * var(--k)) calc(16px * var(--k));
  border-radius:var(--radius); text-align:center; text-decoration:none; font:500 calc(18px * var(--k))/1.25 var(--font); -webkit-text-stroke: var(--fw-boost, 0) currentColor;
  border: 1px solid var(--btnl-edge); background: linear-gradient(to bottom, var(--btnl-hi) 0%, #ecf9f7 45%, var(--btnl-lo) 100%);
  color:var(--ink); text-shadow: 0 1px 0 rgba(255, 255, 255, .95); box-shadow: inset 0 1px 0 #fff, 0 2px 5px rgba(6, 58, 80, .18); transition: filter .1s; }
.kons-btn:hover { color:var(--ink); filter: brightness(1.04); }
.kons-btn:active { border-color:#3c8793; background: linear-gradient(to bottom, #a9d8d2 0%, #c6e8e3 100%); box-shadow: inset 0 3px 6px rgba(6, 58, 80, .38); filter:none; }
.kons-btn.is-on { border-color: var(--btn-press-edge); background: linear-gradient(to bottom, var(--btn-press-hi) 0%, var(--btn-press-lo) 100%);
  color:#d9edf3; text-shadow: 0 -1px 0 rgba(0, 0, 0, .55); box-shadow: inset 0 3px 7px rgba(0, 0, 0, .55), inset 0 0 0 1px rgba(0, 0, 0, .12); filter:none; }
.kons-hero { display:grid; grid-template-columns:minmax(0, 1fr); grid-template-areas:"text" "cta"; gap:0 calc(38px * var(--k)); align-items:start; }
.kons-hero.has-image { grid-template-columns:minmax(0, 1fr) calc(380px * var(--k)); grid-template-areas:"text img" "cta img"; }
.kons-hero__text { grid-area:text; min-width:0; }
.kons-image { grid-area:img; margin:0; }
.kons-image img { width:100%; height:auto; border-radius:calc(10px * var(--k)); border: 1px solid var(--teal-line); background:var(--teal-soft); box-shadow: 0 6px 20px rgba(12, 98, 132, .12); }
.kons-hero__cta { grid-area:cta; display:flex; flex-wrap:wrap; gap:calc(12px * var(--k)); margin-top:calc(26px * var(--k)); }
.kons-hero__cta .button, .kons-none-actions .button { display:inline-flex; align-items:center; justify-content:center; height:calc(50px * var(--k)); padding:0 calc(22px * var(--k));
  font-size:calc(17.5px * var(--k)); white-space:nowrap; cursor:pointer; }
.kons-hero__cta .pub-consult__menu { right:auto; left:0; }
.kons-prices { list-style:none; margin:calc(18px * var(--k)) 0 0; padding:0; display:flex; flex-direction:column; gap:calc(6px * var(--k)); max-width:calc(560px * var(--k)); }
.kons-prices li { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:calc(8px * var(--k)) calc(14px * var(--k));
  border: 1px solid var(--teal-line); border-radius:var(--radius); background:#f4fbfa; font-size:calc(17px * var(--k)); }
.kons-prices b { flex:none; color:var(--ink); font-weight:600; white-space:nowrap; }
.kons-cta .kons-prices { margin-top:calc(10px * var(--k)); }
.kons-cta .kons-prices li { background:rgba(255, 255, 255, .7); }
.kons-art .pub-author { margin-top:calc(36px * var(--k)); }
.kons-none-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.kons-none-actions .pub-consult__menu { left:0; right:auto; text-align:left; }
@media (max-width: 900px) {
  .kons-aside__label { margin:0 2px; font-size:12px; }
  .kons-aside { margin-top:16px; gap:8px; }
  .kons-list { gap:8px; padding:0; overflow:visible; }
  .kons-btn { min-height:48px; padding:8px 14px; font-size:16px; }
  .kons-page .pub-layout > .pub-main { margin-top:14px; }
  .kons-hero.has-image { grid-template-columns:minmax(0, 1fr); grid-template-areas:"text" "img" "cta"; }
  .kons-image { margin-top:16px; }
  .kons-image img { border-radius:8px; box-shadow:none; }
  .kons-hero__cta { margin-top:16px; }
  .kons-hero__cta .pub-consult { width:100%; }
  .kons-hero__cta .button { width:100%; height:48px; font-size:15px; }
  .kons-prices li { font-size:14.5px; padding:8px 12px; }
}
