/*
Theme Name: Astra Child — КРК (Клиника регенеративной кардиологии)
Template: astra
Version: 1.2.1
Text Domain: astra-child
Description: Дочерняя тема Astra для КРК, cardio-irkutsk.ru. Фирменный стиль (Manrope, #074097/#C51400), CPT, top-bar, футер, реквизиты.
*/

/* ---------- Локальный шрифт Manrope ---------- */
@font-face { font-family:'Manrope'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/manrope-cyrillic-400.woff2') format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/manrope-latin-400.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+2013-2014,U+2018-2019,U+201C-201D,U+2020-2022,U+2026,U+2122; }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/manrope-cyrillic-500.woff2') format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/manrope-latin-500.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+2013-2014,U+2018-2019,U+201C-201D,U+2020-2022,U+2026,U+2122; }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/manrope-cyrillic-600.woff2') format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:600; font-display:swap; src:url('fonts/manrope-latin-600.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+2013-2014,U+2018-2019,U+201C-201D,U+2020-2022,U+2026,U+2122; }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/manrope-cyrillic-700.woff2') format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:700; font-display:swap; src:url('fonts/manrope-latin-700.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+2013-2014,U+2018-2019,U+201C-201D,U+2020-2022,U+2026,U+2122; }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:800; font-display:swap; src:url('fonts/manrope-cyrillic-800.woff2') format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Manrope'; font-style:normal; font-weight:800; font-display:swap; src:url('fonts/manrope-latin-800.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+2013-2014,U+2018-2019,U+201C-201D,U+2020-2022,U+2026,U+2122; }

:root { --krk-blue:#074097; --krk-blue-d:#06316f; --krk-blue-2:#0A56C4; --krk-red:#C51400; --krk-red-d:#a91100; --krk-text:#1F1F1F; --krk-cream:#F5F3EF; }

/* ---------- Базовая типографика ---------- */
body, button, input, select, textarea,
h1, h2, h3, h4, h5, h6, .elementor-heading-title {
  font-family: "Manrope", -apple-system, "Segoe UI", Arial, sans-serif;
}
body { color: var(--krk-text); }
.elementor-heading-title { overflow-wrap: break-word; }

/* Защита от горизонтального переполнения на мобильных */
html, body { max-width: 100%; overflow-x: hidden; }
*, *::before, *::after { box-sizing: border-box; }
img, iframe, video, table { max-width: 100%; }
.cardio-page, .cardio-form-wrap { width: 100%; }
@media (max-width: 600px) {
  .cardio-page { padding-left: 4px; padding-right: 4px; }
}

@media (max-width: 921px) {
  h1.elementor-heading-title { font-size: 32px !important; line-height: 1.2 !important; }
  h2.elementor-heading-title { font-size: 26px !important; }
}
@media (max-width: 544px) {
  h1.elementor-heading-title { font-size: 25px !important; }
  h2.elementor-heading-title { font-size: 21px !important; }
}

/* ---------- TOP BAR ---------- */
.cardio-topbar { background: #111; color: #fff; font-size: 14px; }
.cardio-topbar__in { max-width: 1200px; margin: 0 auto; padding: 8px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.cardio-topbar__phones { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; }
.cardio-topbar__phones a { color: #fff; text-decoration: none; font-weight: 700; white-space: nowrap; }
.cardio-topbar__phones a:hover { color: var(--krk-red); }
.cardio-topbar__cta { display: flex; gap: 10px; flex-wrap: wrap; }
.cardio-topbar__cta a { text-decoration: none; font-weight: 600; font-size: 13px; padding: 7px 16px; border-radius: 6px; white-space: nowrap; }
.cardio-topbar__cta .tb-red { background: var(--krk-red); color: #fff; }
.cardio-topbar__cta .tb-out { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.5); }
.cardio-topbar__cta .tb-red:hover { background: var(--krk-red-d); }
.cardio-topbar__cta .tb-out:hover { border-color: #fff; }
@media (max-width: 768px) { .cardio-topbar__in { justify-content: center; text-align: center; } .cardio-topbar__phones { justify-content: center; } }

/* ---------- FOOTER ---------- */
.cardio-footer { background: var(--krk-blue-d); color: #d7e0f2; padding: 48px 20px 24px; }
.cardio-footer__in { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.cardio-footer h4 { color: #fff; font-size: 17px; margin: 0 0 14px; font-weight: 700; }
.cardio-footer a { color: #d7e0f2; text-decoration: none; }
.cardio-footer a:hover { color: #fff; }
.cardio-footer p { margin: 0 0 8px; line-height: 1.55; font-size: 15px; }
.cardio-footer__phone { font-size: 19px; font-weight: 800; color: #fff !important; display: inline-block; margin-bottom: 6px; }
.cardio-footer__map { grid-column: 1 / -1; margin-top: 24px; }
.cardio-footer__map iframe { width: 100%; height: 260px; border: 0; border-radius: 10px; display: block; }
.cardio-footer__req { grid-column: 1 / -1; margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); font-size: 12.5px; color: #aeb9d6; line-height: 1.7; }
.cardio-footer__bottom { max-width: 1200px; margin: 18px auto 0; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12); font-size: 13px; color: #aeb9d6; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
@media (max-width: 921px) { .cardio-footer__in { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 544px) { .cardio-footer__in { grid-template-columns: 1fr; } }

.site-footer .ast-small-footer { display: none; }

/* ---------- Сетки карточек (шорткоды) ---------- */
.cardio-grid { display: grid; gap: 24px; margin: 8px 0 24px; }
.cardio-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 921px) { .cardio-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .cardio-grid--3 { grid-template-columns: 1fr; } }
.cardio-card { background: #fff; border-radius: 10px; padding: 22px; box-shadow: 0 6px 24px rgba(7,64,151,.09); display: flex; flex-direction: column; gap: 8px; }
.cardio-card--dep { border-left: 4px solid var(--krk-red); }
.cardio-card__img, .cardio-card__ph { width: 100%; height: 210px; object-fit: cover; border-radius: 8px; background: #dbe4f4; margin-bottom: 6px; }
.cardio-card__title { color: var(--krk-blue); font-size: 19px; font-weight: 700; margin: 0; }
.cardio-card__sub { color: var(--krk-blue-2); font-size: 15px; margin: 0 0 6px; flex-grow: 1; }
.cardio-btn { display: inline-block; align-self: flex-start; text-decoration: none; font-weight: 600; font-size: 14px; background: var(--krk-red); color: #fff !important; padding: 10px 22px; border-radius: 6px; }
.cardio-btn:hover { background: var(--krk-red-d); }
.cardio-btn--out { background: transparent; color: var(--krk-blue) !important; border: 1px solid var(--krk-blue); }
.cardio-btn--out:hover { background: var(--krk-blue); color: #fff !important; }

.entry-title, .ast-page-title, h1.entry-title { color: var(--krk-blue); }

/* Заголовок сайта в шапке (длинное название бренда) */
.site-title, .ast-site-title-wrap .site-title { font-size: 19px !important; line-height: 1.15 !important; font-weight: 800 !important; max-width: 320px; }
.site-title a { color: var(--krk-blue) !important; }
.ast-site-identity { padding: 8px 0; }
.cardio-page { max-width: 1200px; margin: 0 auto; padding: 10px 0 30px; }
.cardio-lead { font-size: 17px; color: var(--krk-text); line-height: 1.65; margin-bottom: 20px; }
.cardio-req-box { background: var(--krk-cream); border-radius: 10px; padding: 22px 24px; font-size: 14px; line-height: 1.75; color: #333; margin-top: 20px; }
.cardio-req-box b { color: var(--krk-blue); }

/* Форма записи (Contact Form 7) */
.cardio-form-wrap { max-width: 720px; width: 100%; }
.wpcf7-form p { margin: 0 0 14px; }
.wpcf7-form label { display: block; font-weight: 600; color: var(--krk-blue); margin-bottom: 6px; }
.wpcf7-form input, .wpcf7-form textarea, .wpcf7-form select { box-sizing: border-box; max-width: 100%; }
.wpcf7-form input[type=text], .wpcf7-form input[type=tel], .wpcf7-form input[type=email],
.wpcf7-form input[type=date], .wpcf7-form textarea, .wpcf7-form select {
  width: 100%; padding: 12px 14px; border: 1px solid #cdd6ea; border-radius: 8px; font-size: 16px; font-family: inherit;
}
.wpcf7-form textarea { min-height: 120px; resize: vertical; }
.wpcf7-form .cardio-consent label { display: flex; gap: 8px; font-weight: 400; color: var(--krk-text); font-size: 13px; align-items: flex-start; }
.wpcf7-form input[type=submit] { background: var(--krk-red); color: #fff; border: 0; padding: 14px 34px; border-radius: 8px; font-size: 16px; font-weight: 600; cursor: pointer; }
.wpcf7-form input[type=submit]:hover { background: var(--krk-red-d); }

/* Строка стажа/категории в карточке врача (шорткод [cardio_doctors]) */
.cardio-card__meta{margin:2px 0 12px;font-size:13px;color:#6b7280;line-height:1.4}

/* Страницы-архивы врачей/отделений (/doctors/, /departments/) */
.cardio-archive{padding:40px 20px}
.cardio-archive__in{max-width:1200px;margin:0 auto}
.cardio-archive__title{margin:0 0 8px;color:#074097}
.cardio-archive__intro{margin:0 0 26px;color:#555;max-width:70ch}
