/* ==========================================================================
   Hello Party — фирменный стиль: палитра A «коробочка Tiffany» + шрифт Nunito
   Подключается ПОСЛЕДНИМ в чанке header. Исходные CSS темы не меняются.
   Все цвета — переменные в :root. Контраст WCAG AA проверен (reports/).
   ========================================================================== */

/* ---------- Шрифт Nunito: self-hosted (assets/fonts), латиница + кириллица, без Google ---------- */
/* Lato / Open Sans / Segoe UI — те же файлы: старые правила темы, где они указаны, тоже рисуют Nunito */
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 300 800; font-display: swap;
	src: url('../fonts/nunito-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 300 800; font-display: swap;
	src: url('../fonts/nunito-cyrillic.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 300 800; font-display: swap;
	src: url('../fonts/nunito-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 300 800; font-display: swap;
	src: url('../fonts/nunito-cyrillic.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 300 800; font-display: swap;
	src: url('../fonts/nunito-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 300 800; font-display: swap;
	src: url('../fonts/nunito-cyrillic.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Segoe UI'; font-style: normal; font-weight: 300 800; font-display: swap;
	src: url('../fonts/nunito-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Segoe UI'; font-style: normal; font-weight: 300 800; font-display: swap;
	src: url('../fonts/nunito-cyrillic.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

:root {
	--hp-main:       #81D8D0;       /* фон меню, разделители, обводки */
	--hp-menu-text:  #135E5A;       /* текст меню, иконки, RU/DE: 7.56:1 на белом, 4.56:1 на #81D8D0 */
	--hp-menu-active: #277F77;      /* активный пункт / наведение: 4.79:1 на белом */
	--hp-separator:  #D6F1EE;       /* разделители пунктов меню (декоративные) */
	--hp-text:       #135E5A;       /* основной текст */
	--hp-heading:    #008080;    /* заголовки */
	--hp-link:       #008080;
	--hp-dark:       #277F77;       /* кнопки, цены */
	--hp-dark-hover: #1F645D;
	--hp-light:      #F5FCFB;      /* деликатный фон отдельных секций */
	--hp-border:     #81D8D0;
	--hp-font-heading: 'Nunito', 'Helvetica Neue', Arial, sans-serif;
	--hp-font-body:    'Nunito', 'Helvetica Neue', Arial, sans-serif;
	--hp-read-width: 760px;
}

/* ---------- База ---------- */
body { background: #fff; color: var(--hp-text); font-family: var(--hp-font-body); }
::selection { background-color: var(--hp-dark); color: #fff; }
a { color: var(--hp-link); }
a:hover, a:focus { color: var(--hp-dark); }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color: var(--hp-heading); font-family: var(--hp-font-heading); }
p, li, td, th { color: var(--hp-text); }
button, input, select, textarea, .dt-sc-button, #main-menu a, .dt-menu-toggle, header span, header a, .lang-switch a { font-family: var(--hp-font-body); }
.fa, [class^="fa-"], [class*=" fa-"] { font-family: FontAwesome !important; }

/* ---------- Шапка ---------- */
header .phone a, header .addr, header .mail a, header .mail, header .graphic { color: var(--hp-text); }
/* Логотип: assets/images/logo/helloparty-header.webp (+ .png), прозрачный фон, 787×300 px; размер — 1.35× по высоте от прежнего.
   Блоки контактов стоят абсолютно (тема) — шапке задаётся высота, чтобы логотип и контакты помещались целиком. */
:root { --hp-logo-scale: 1.35; }
.logo img.logo-main { width: auto; max-width: 100%; }
@media (min-width: 961px) {
	.logo { width: auto; margin: 0 auto; }
	.logo img.logo-main { height: calc(105px * var(--hp-logo-scale)); max-width: none; margin: 8px auto 0; }
	header > .container { min-height: 158px; }
	header .contacts-left { top: 47px; }
	header .contacts-right { top: 40px; }
	header .contacts-right .phone { margin-bottom: 12px; }
}
@media (min-width: 961px) and (max-width: 1199px) { header .contacts-left { left: 30px; } header .contacts-right { right: 30px; } }
@media (max-width: 960px) { .logo img.logo-main { height: calc(66px * var(--hp-logo-scale)); } }
@media (max-width: 767px) { .logo img.logo-main { height: calc(65px * var(--hp-logo-scale)); } }

/* ---------- Меню ----------
   Десктоп (≥ 1025 px — граница мобильного меню темы): полоса белая, пункты — тёмный тиффани, активный/наведение — #277F77 + полоска #81D8D0,
   разноцветные полоски над пунктами убраны, под меню — линия #81D8D0.
   Телефон/планшет (≤ 1024 px): полоса #81D8D0, текст тёмный тиффани. */
#main-menu > ul.menu > li > a { color: var(--hp-menu-text); border-top-color: transparent !important; }
#main-menu > ul.menu > li > a:after { background: none; }
/* вертикальные разделители между пунктами (как в теме: видны шире 1024 px), тонкие, в гамме тиффани */
@media (min-width: 1025px) {
	#main-menu > ul.menu > li > a:after { width: 1px; background: var(--hp-separator); }
	#main-menu > ul.menu > li:last-child > a:after { width: 0; background: none; }
}
#main-menu > ul.menu > li[class*="color"] > a:hover, #main-menu > ul.menu > li.current_page_item > a, #main-menu > ul.menu > li.active > a, #main-menu > ul.menu > li a:hover
	{ color: var(--hp-menu-active); background-color: transparent; text-decoration: none; }
#main-menu ul li.menu-item-simple-parent ul, .megamenu-child-container { background: #fff; }
#main-menu ul li.menu-item-simple-parent ul li a { color: var(--hp-text); }
div.lang-switch .lang-item, div.lang-switch .lang-item:hover { color: var(--hp-menu-text) !important; border-top-color: transparent !important; }
div.lang-switch .lang-item:hover { color: var(--hp-menu-active) !important; }
header ul.dt-sc-social-icons li, header ul.dt-sc-social-icons li a, header ul.dt-sc-social-icons li a.facebook, header ul.dt-sc-social-icons li a.instagram, header ul.dt-sc-social-icons li a.youtube
	{ background: transparent !important; border-color: transparent !important; }
header ul.dt-sc-social-icons li a span, header ul.dt-sc-social-icons li a.facebook span, header ul.dt-sc-social-icons li a.instagram span, header ul.dt-sc-social-icons li a.youtube span
	{ background: transparent !important; border-color: transparent !important; color: var(--hp-menu-text) !important; }
header ul.dt-sc-social-icons li a:hover span { color: var(--hp-menu-active) !important; }
@media (min-width: 1025px) {
	#menu-container { background-color: #fff; box-shadow: 0 2px 0 var(--hp-main); }  /* линия под меню (вместо серой тени темы) */
	#menu-container .menu-container, #main-menu > ul.menu > li { background-color: transparent; }
	#main-menu > ul.menu > li > a { box-shadow: inset 0 -3px 0 transparent; }
	#main-menu > ul.menu > li.current_page_item > a, #main-menu > ul.menu > li.active > a, #main-menu > ul.menu > li > a:hover { box-shadow: inset 0 -3px 0 var(--hp-main); }
	/* Nunito шире Lato: меню + иконки + языки остаются в одну строку */
	#main-menu > ul.menu > li > a { padding-left: 11px; padding-right: 11px; }
}
@media (min-width: 1025px) and (max-width: 1279px) { #main-menu > ul.menu > li > a { padding-left: 7px; padding-right: 7px; } }
@media (min-width: 1025px) and (max-width: 1150px) { #main-menu > ul.menu > li > a { padding-left: 4px; padding-right: 4px; font-size: 11px; } }
@media (max-width: 1024px) {
	.dt-menu-toggle { background: var(--hp-main) !important; filter: none; color: var(--hp-menu-text); }
	.dt-menu-toggle-icon, .dt-menu-toggle-icon:before, .dt-menu-toggle-icon:after { background: var(--hp-menu-text); }
	.mean-container .mean-nav, .mean-container .mean-bar { background: var(--hp-main); }
	.mean-container .mean-nav ul li a { color: var(--hp-menu-text); }
}

/* ---------- Хлебные крошки ---------- */
.breadcrumb-section { background: transparent; }
.breadcrumb-section .breadcrumb { background: var(--hp-light); border-left: 4px solid var(--hp-border); }
.breadcrumb-section h1, .breadcrumb-section .h1 { color: var(--hp-heading); }
.breadcrumb-section .breadcrumb a { color: var(--hp-link); }
.breadcrumb-section .breadcrumb, .breadcrumb-section .breadcrumb span { color: var(--hp-text); }

/* ---------- Кнопки бронирования и cookies: тёмный оттенок, белый текст ---------- */
.dt-sc-button, .get-modal-btn, .send-btn, button.violet, .dt-sc-button.violet, .ck-btn.ck-accept, #ck-bar-accept-all, #ck-modal-accept-all
	{ background: var(--hp-dark) !important; filter: none; color: #fff !important; border-color: var(--hp-dark) !important; }
.dt-sc-button:hover, .get-modal-btn:hover, .send-btn:hover, #ck-bar-accept-all:hover, #ck-modal-accept-all:hover
	{ background: var(--hp-dark-hover) !important; color: #fff !important; }

/* ---------- Инлайн-цвета из текстов (редактор) ---------- */
#main [style*="008080"], #main [style*="333333"], #main [style*="000000"], #main [style*="339966"] { color: var(--hp-text) !important; }
#main :is(h1, h2, h3, h4, h5, h6) [style*="008080"], #main :is(h1, h2, h3, h4, h5, h6)[style*="008080"],
#main :is(h1, h2, h3, h4, h5, h6) [style*="333333"], #main :is(h1, h2, h3, h4, h5, h6) [style*="000000"] { color: var(--hp-heading) !important; }
#main [style*="993366"] { color: var(--hp-dark) !important; font-weight: 700; }
#main [style*="color"] a, #main a [style*="color"] { color: var(--hp-link) !important; }

/* ---------- Секции, карточки, слайдер ---------- */
/* белая декоративная «звёздочка» под заголовком шаблона «Услуги» (img_title по умолчанию) — на белом фоне не видна; красим в цвет палитры */
.services-page > img[src*="Programy/19"] { filter: brightness(0) saturate(100%) invert(79%) sepia(19%) saturate(631%) hue-rotate(123deg) brightness(95%); }
.ask-question { background-color: var(--hp-light); }
.ask-question .h2, .ask-question h2, .service-title, span.h5 { color: var(--hp-heading); }
.services h2, .services .h2, .portfolio-wrap h2, .portfolio-wrap .h2 { color: var(--hp-heading); }
.slick-dots li.slick-active button { background: var(--hp-main); }

/* ---------- Блок допродаж: только переменные ---------- */
body .upsell-block { --upsell-text: var(--hp-text); --upsell-heading: var(--hp-heading); --upsell-accent: var(--hp-dark); --upsell-card-bg: #fff; }
body .upsell-block .h2 { color: var(--hp-heading); }
.upsell-img { box-shadow: 0 0 0 3px var(--hp-border); }

/* ---------- Подвал ---------- */
footer, footer p, footer li, footer .widget { color: var(--hp-text); }
footer a, body footer .widget a, body footer .widget ul li a, body footer .widget.widget_text ul li a, body footer .widget_recent_entries ul li a, body footer .h6 a, body footer .dt-sc-contact-info a
	{ color: var(--hp-link); }
.copyright { background: var(--hp-dark) !important; filter: none; }
.copyright p, .copyright p a, .copyright a { color: #fff; }

/* ==========================================================================
   Типографика: единая шкала
   ========================================================================== */
h1, .h1 { font-size: 36px; line-height: 1.25; font-weight: 700; }
h2, .h2 { font-size: 28px; line-height: 1.3; font-weight: 700; }
h3, .h3 { font-size: 22px; line-height: 1.35; font-weight: 600; }
.breadcrumb-section h1 { font-size: 30px; }

/* ==========================================================================
   Колонка для чтения — только в области текста страницы
   (не трогает блок допродаж, слайдер, галереи, карточки главной, кнопки)
   ========================================================================== */
.services-page > .col-md-12, .page-section > .container > .row > .col-md-12, #primary.content-full-width:not(.services-page) {
	float: none; max-width: var(--hp-read-width); margin-left: auto; margin-right: auto; padding-left: 20px; padding-right: 20px;
	font-size: 17px; line-height: 1.6; text-align: left;
}
/* инлайн из редактора: выравнивание, шрифт, размер, межстрочный */
.services-page > .col-md-12 [style*="text-align"], .page-section > .container > .row > .col-md-12 [style*="text-align"], #primary.content-full-width:not(.services-page) [style*="text-align"] { text-align: left !important; }
.services-page > .col-md-12 [align], .page-section > .container > .row > .col-md-12 [align], #primary.content-full-width:not(.services-page) [align] { text-align: left !important; }
.services-page > .col-md-12 [style*="font-family"], .page-section > .container > .row > .col-md-12 [style*="font-family"], #primary.content-full-width:not(.services-page) [style*="font-family"] { font-family: inherit !important; }
.services-page > .col-md-12 [style*="font-size"], .page-section > .container > .row > .col-md-12 [style*="font-size"], #primary.content-full-width:not(.services-page) [style*="font-size"] { font-size: inherit !important; }
.services-page > .col-md-12 [style*="line-height"], .page-section > .container > .row > .col-md-12 [style*="line-height"], #primary.content-full-width:not(.services-page) [style*="line-height"] { line-height: inherit !important; }
.services-page > .col-md-12 p, .page-section > .container > .row > .col-md-12 p, #primary.content-full-width:not(.services-page) p, .services-page > .col-md-12 li, .page-section > .container > .row > .col-md-12 li, #primary.content-full-width:not(.services-page) li, .services-page > .col-md-12 td, .page-section > .container > .row > .col-md-12 td, #primary.content-full-width:not(.services-page) td { font-size: 17px; line-height: 1.6; text-align: left !important; }
.services-page > .col-md-12 ul, .page-section > .container > .row > .col-md-12 ul, #primary.content-full-width:not(.services-page) ul, .services-page > .col-md-12 ol, .page-section > .container > .row > .col-md-12 ol, #primary.content-full-width:not(.services-page) ol { padding-left: 1.3em; text-align: left; }
.services-page > .col-md-12 li, .page-section > .container > .row > .col-md-12 li, #primary.content-full-width:not(.services-page) li { margin-bottom: .3em; }
/* заголовки h1–h3 — по центру */
.services-page > .col-md-12 :is(h1, h2, h3, .h1, .h2, .h3), .page-section > .container > .row > .col-md-12 :is(h1, h2, h3, .h1, .h2, .h3), #primary.content-full-width:not(.services-page) :is(h1, h2, h3, .h1, .h2, .h3), .services-page > .col-md-12 :is(h1, h2, h3) [style*="text-align"], .page-section > .container > .row > .col-md-12 :is(h1, h2, h3) [style*="text-align"], #primary.content-full-width:not(.services-page) :is(h1, h2, h3) [style*="text-align"] { text-align: center !important; }
.services-page > .col-md-12 h1, .page-section > .container > .row > .col-md-12 h1, #primary.content-full-width:not(.services-page) h1 { font-size: 32px; }
.services-page > .col-md-12 h2, .page-section > .container > .row > .col-md-12 h2, #primary.content-full-width:not(.services-page) h2 { font-size: 26px; }
.services-page > .col-md-12 h3, .page-section > .container > .row > .col-md-12 h3, #primary.content-full-width:not(.services-page) h3 { font-size: 21px; }
.services-page > .col-md-12 :is(h1, h2, h3, h4), .page-section > .container > .row > .col-md-12 :is(h1, h2, h3, h4), #primary.content-full-width:not(.services-page) :is(h1, h2, h3, h4) { margin: 1.4em 0 .6em; }
/* картинки и видео — на ширину колонки */
.services-page > .col-md-12 img, .page-section > .container > .row > .col-md-12 img, #primary.content-full-width:not(.services-page) img { display: block; max-width: 100% !important; height: auto !important; margin: 16px auto; }
.services-page > .col-md-12 img[width]:not([width="16"]):not([width="24"]):not([width="32"]):not([width="48"]):not([width="64"]), .page-section > .container > .row > .col-md-12 img[width]:not([width="16"]):not([width="24"]):not([width="32"]):not([width="48"]):not([width="64"]), #primary.content-full-width:not(.services-page) img[width]:not([width="16"]):not([width="24"]):not([width="32"]):not([width="48"]):not([width="64"]) { width: 100% !important; }
.services-page > .col-md-12 iframe, .page-section > .container > .row > .col-md-12 iframe, #primary.content-full-width:not(.services-page) iframe { display: block; width: 100% !important; max-width: 100%; height: auto !important; aspect-ratio: 16 / 9; margin: 16px auto; }
.services-page > .col-md-12 table, .page-section > .container > .row > .col-md-12 table, #primary.content-full-width:not(.services-page) table { max-width: 100%; }

@media (max-width: 767px) {
	h1, .h1 { font-size: 28px; }
	h2, .h2 { font-size: 24px; }
	h3, .h3 { font-size: 20px; }
	.services-page > .col-md-12, .page-section > .container > .row > .col-md-12, #primary.content-full-width:not(.services-page) { padding-left: 16px; padding-right: 16px; font-size: 16px; }
	.services-page > .col-md-12 p, .page-section > .container > .row > .col-md-12 p, #primary.content-full-width:not(.services-page) p, .services-page > .col-md-12 li, .page-section > .container > .row > .col-md-12 li, #primary.content-full-width:not(.services-page) li, .services-page > .col-md-12 td, .page-section > .container > .row > .col-md-12 td, #primary.content-full-width:not(.services-page) td { font-size: 16px; }
	.services-page > .col-md-12 :is(h1, h2, h3, .h1, .h2, .h3), .page-section > .container > .row > .col-md-12 :is(h1, h2, h3, .h1, .h2, .h3), #primary.content-full-width:not(.services-page) :is(h1, h2, h3, .h1, .h2, .h3), .services-page > .col-md-12 :is(h1, h2, h3) [style*="text-align"], .page-section > .container > .row > .col-md-12 :is(h1, h2, h3) [style*="text-align"], #primary.content-full-width:not(.services-page) :is(h1, h2, h3) [style*="text-align"] { text-align: left !important; }
	.services-page > .col-md-12 h1, .page-section > .container > .row > .col-md-12 h1, #primary.content-full-width:not(.services-page) h1 { font-size: 26px; }
	.services-page > .col-md-12 h2, .page-section > .container > .row > .col-md-12 h2, #primary.content-full-width:not(.services-page) h2 { font-size: 22px; }
	.services-page > .col-md-12 h3, .page-section > .container > .row > .col-md-12 h3, #primary.content-full-width:not(.services-page) h3 { font-size: 19px; }
}


/* ---------- Страница цен (чанки price-page-*) ---------- */
.services-page > .col-md-12:has(.hp-price) { max-width: 1140px; }
.hp-price { --hp-card-radius: 16px; }
.hp-price .hp-lead { text-align: center !important; max-width: 760px; margin: 0 auto 8px; }
.hp-price h2 { margin-top: 48px; }
.hp-cards { display: grid; gap: 24px; margin: 24px 0 12px; align-items: stretch; }
.hp-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hp-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; margin-left: auto; margin-right: auto; }
.hp-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--hp-border); border-radius: var(--hp-card-radius); padding: 28px 22px 24px; box-shadow: 0 2px 10px rgba(19, 94, 90, .06); }
.hp-card--popular { border: 2px solid var(--hp-dark); box-shadow: 0 8px 24px rgba(19, 94, 90, .16); }
@media (min-width: 992px) { .hp-card--popular { transform: translateY(-10px); } }
.hp-badge { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); white-space: nowrap; background: var(--hp-dark); color: #fff; font-weight: 700; font-size: 14px; padding: 4px 16px; border-radius: 999px; }
.hp-price p.hp-card-name { font-family: var(--hp-font-heading); font-size: 26px; font-weight: 700; color: var(--hp-heading); text-align: center !important; margin: 4px 0 0; }
.hp-price p.hp-card-hours { text-align: center !important; font-weight: 600; margin: 0 0 12px; }
.hp-card-list { list-style: none; padding: 12px 0 0 !important; margin: 0 0 16px; border-top: 1px solid var(--hp-border); flex-grow: 1; }
.hp-price .hp-card-list li { position: relative; list-style: none !important; padding-left: 26px; margin: 0 0 8px; font-size: 16px; line-height: 1.45; text-indent: 0; }
.hp-price .hp-card-list { padding-left: 0 !important; }
.hp-card-list li::before { content: ""; position: absolute; left: 2px; top: 5px; width: 13px; height: 7px; border-left: 2.5px solid var(--hp-dark); border-bottom: 2.5px solid var(--hp-dark); transform: rotate(-45deg); }
.hp-price p.hp-card-price { font-size: 32px; font-weight: 800; color: var(--hp-dark); text-align: center !important; margin: 0; line-height: 1.2; }
.hp-price p.hp-save { text-align: center !important; font-weight: 700; font-size: 15px; color: var(--hp-dark); background: var(--hp-light); border-radius: 8px; padding: 6px 10px; margin: 8px 0 0; }
.hp-price p.hp-card-deposit { text-align: center !important; font-size: 14px; margin: 8px 0 14px; }
.hp-card-btn { display: block; width: 100%; margin: 0 !important; padding: 12px 16px; font-size: 16px; font-weight: 700; border-radius: 10px; border: 0 !important; box-shadow: none !important; }
.hp-price p.hp-note { font-size: 15px; text-align: center !important; max-width: 760px; margin: 8px auto 0; }
.hp-price p.hp-note--top { margin-bottom: 0; }
.hp-banner { max-width: 760px; margin: 28px auto 0; padding: 18px 22px; border-radius: var(--hp-card-radius); background: var(--hp-light); border: 2px dashed var(--hp-main); text-align: center; }
.hp-price .hp-banner p { text-align: center !important; margin: 0; }
.hp-price .hp-banner p.hp-banner-title { font-weight: 800; font-size: 19px; color: var(--hp-dark); margin-bottom: 6px; }
.hp-extras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 20px 0 8px; }
.hp-extra { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 14px 18px; border: 1px solid var(--hp-border); border-radius: 12px; background: #fff; text-decoration: none !important; }
.hp-extra:hover { border-color: var(--hp-dark); }
.hp-extra-name { font-weight: 700; color: var(--hp-heading); }
.hp-extra-price { font-weight: 700; color: var(--hp-dark); white-space: nowrap; }
.hp-steps, .hp-pay-notes { max-width: 760px; margin: 16px auto 0 !important; }
.hp-price .hp-pay-notes { padding-left: 0 !important; margin-top: 4px !important; }
.hp-price .hp-pay-notes li { list-style: none !important; position: relative; padding-left: 22px; }
.hp-pay-notes li::before { content: ""; position: absolute; left: 4px; top: .65em; width: 7px; height: 7px; border-radius: 50%; background: var(--hp-dark); }
.hp-faq { max-width: 760px; margin: 16px auto 0; }
.hp-faq-item { border-bottom: 1px solid var(--hp-border); padding: 12px 0; }
.hp-faq-item summary { cursor: pointer; font-weight: 700; color: var(--hp-heading); font-size: 17px; list-style-position: outside; }
.hp-faq-item p { margin: 8px 0 0; }
.hp-cta { text-align: center; margin: 44px auto 8px; max-width: 520px; }
.hp-price p.hp-cta-title { text-align: center !important; font-family: var(--hp-font-heading); font-size: 24px; font-weight: 700; color: var(--hp-heading); margin-bottom: 14px; }
@media (max-width: 991px) { .hp-cards--3 { grid-template-columns: minmax(0, 1fr); max-width: 460px; margin-left: auto; margin-right: auto; } .hp-extras { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.hp-cards--2 { grid-template-columns: minmax(0, 1fr); }
	.hp-cards { gap: 28px; }
	.hp-extras { grid-template-columns: minmax(0, 1fr); }
	.hp-price p.hp-card-price { font-size: 28px; }
}

/* ---------- Блок «Что входит» (чанк included-block) ---------- */
.hp-included { margin: 32px auto; padding: 28px 22px 20px; max-width: 760px; background: var(--hp-light); border-radius: 18px; text-align: center; }
.hp-included p.hp-inc-title { font-family: var(--hp-font-heading); font-size: 26px; font-weight: 700; color: var(--hp-heading); text-align: center !important; margin: 0 0 4px; line-height: 1.3; }
.hp-included p.hp-inc-sub { text-align: center !important; margin: 0 0 18px; font-size: 16px; }
.hp-included ul.hp-inc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; list-style: none; padding: 0 !important; margin: 0; }
.hp-included li.hp-inc-card { list-style: none !important; display: flex; flex-direction: column; align-items: center; gap: 10px; margin: 0; padding: 18px 12px 16px; background: #fff; border: 1px solid var(--hp-border); border-radius: 14px; text-align: center !important; }
.hp-included .hp-inc-text { text-align: center !important; }
.hp-inc-icon { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--hp-light); box-shadow: inset 0 0 0 2px var(--hp-main); color: var(--hp-dark); }
.hp-inc-text { font-weight: 700; font-size: 15px; line-height: 1.35; color: var(--hp-text); }
.hp-included p.hp-inc-note { text-align: center !important; font-size: 14px; margin: 14px 0 0; }
@media (max-width: 767px) { .hp-included ul.hp-inc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .hp-included { padding: 22px 12px 16px; } .hp-included p.hp-inc-title { font-size: 22px; } .hp-inc-text { font-size: 14px; } }

/* ---------- Отзывы Google (чанк reviews-google) ---------- */
.hp-reviews { padding: 40px 0 24px; text-align: center; }
.hp-rev-summary { display: inline-block; margin: 6px auto 26px; padding: 8px 20px; font-size: 18px; font-weight: 700; border: 1px solid var(--hp-border); border-radius: 999px; text-decoration: none !important; color: var(--hp-text); }
.hp-rev-score { font-size: 24px; font-weight: 800; color: var(--hp-dark); }
.hp-rev-stars { display: inline-flex; gap: 2px; }
.hp-rev-stars svg { width: 16px; height: 16px; fill: #F4B400; }
.hp-rev-stars--big svg { width: 20px; height: 20px; }
.hp-rev-count { font-weight: 600; }
.hp-rev-grid { columns: 3 300px; column-gap: 22px; text-align: left; }
.hp-rev { break-inside: avoid; display: inline-block; width: 100%; margin: 0 0 22px; padding: 20px 20px 16px; background: #fff; border: 1px solid var(--hp-border); border-radius: 16px; box-shadow: 0 2px 10px rgba(19, 94, 90, .06); }
.hp-rev blockquote.hp-rev-text { margin: 10px 0 14px; padding: 0; border: 0 !important; outline: 0; box-shadow: none !important; background: none !important; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 8; overflow: hidden; font-size: 15px; line-height: 1.55; color: var(--hp-text) !important; font-style: normal; quotes: none; }
.hp-rev blockquote.hp-rev-text::before, .hp-rev blockquote.hp-rev-text::after { content: none !important; }
.hp-rev-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; }
.hp-rev-name { font-weight: 700; color: var(--hp-heading); }
.hp-rev-date { color: var(--hp-text); opacity: .8; }
.hp-rev-src { margin-left: auto; font-weight: 700; font-size: 13px; color: var(--hp-dark) !important; border: 1px solid var(--hp-border); border-radius: 999px; padding: 2px 10px; text-decoration: none !important; }
.hp-rev-all { margin-top: 6px; }
.hp-rev-all a { font-weight: 700; }
@media (max-width: 767px) { .hp-rev-grid { columns: 1; } .hp-rev { padding: 16px; } }

.reviews-bg .hp-reviews > .h2 { display: none; } /* на /reviews/ заголовок уже есть в шаблоне */
.hp-reviews { padding-top: 24px; }

/* ---------- Заявка Tally + WhatsApp (чанки hp-enquire-btns, hp-enquiry-js; 2026-09) ---------- */
.hp-enq { display: flex; flex-direction: column; align-items: center; gap: 14px; margin: 10px auto; }
a.hp-enq-btn, .hp-price a.hp-card-btn { text-decoration: none !important; text-align: center; color: #fff !important; }
.hp-enq a.hp-enq-btn { display: inline-block; width: 300px; max-width: 100%; height: 40px; line-height: 40px; padding: 0 15px; margin: 10px 0 0; font-size: 14px; }
.hp-wa { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.hp-cta .hp-wa { margin-top: 14px; }
a.hp-wa-btn { display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border: 2px solid #25D366; border-radius: 999px; background: #fff;
  color: #0B7A3E !important; font-weight: 700; font-size: 15px; line-height: 1.2; text-decoration: none !important; white-space: nowrap; transition: background .15s, color .15s; }
a.hp-wa-btn::before { content: ""; width: 20px; height: 20px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.4.1-.2 0-.3 0-.5l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .1-1.3c0-.1-.2-.2-.5-.3z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.4.1-.2 0-.3 0-.5l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .1-1.3c0-.1-.2-.2-.5-.3z'/%3E%3C/svg%3E") center / contain no-repeat; }
a.hp-wa-btn:hover, a.hp-wa-btn:focus-visible { background: #25D366; color: #fff !important; }
@media (max-width: 480px) { .hp-wa { flex-direction: column; align-items: stretch; width: 100%; max-width: 300px; margin-left: auto; margin-right: auto; } a.hp-wa-btn { justify-content: center; } }

/* ---------- Главная: заявка под слайдером; карточка Express на странице цен (2026-09) ---------- */
.hp-home-enq { padding: 28px 16px 12px; }
.hp-home-enq .hp-enq { margin: 0 auto; }
.hp-cards--1 { grid-template-columns: minmax(0, 1fr); max-width: 420px; margin-left: auto; margin-right: auto; }

/* ---------- Блок «Что входит» — яркий вариант с иллюстрациями (2026-09, иллюстрации assets/images/included/1–6.webp) ---------- */
.hp-included { position: relative; max-width: 860px; padding: 36px 24px 26px; border-radius: 24px;
  background:
    radial-gradient(circle at 8% 14%, rgba(255,255,255,.9) 0 2px, transparent 3px),
    radial-gradient(circle at 22% 6%, rgba(255,255,255,.7) 0 3px, transparent 4px),
    radial-gradient(circle at 78% 9%, rgba(255,255,255,.85) 0 2px, transparent 3px),
    radial-gradient(circle at 93% 22%, rgba(255,255,255,.6) 0 4px, transparent 5px),
    radial-gradient(circle at 96% 64%, rgba(255,255,255,.8) 0 2px, transparent 3px),
    radial-gradient(circle at 4% 58%, rgba(255,255,255,.7) 0 3px, transparent 4px),
    radial-gradient(circle at 12% 94%, rgba(255,255,255,.85) 0 2px, transparent 3px),
    radial-gradient(circle at 70% 96%, rgba(255,255,255,.6) 0 3px, transparent 4px),
    linear-gradient(135deg, #81D8D0 0%, #D6CCF5 100%);
  box-shadow: 0 10px 30px rgba(19, 94, 90, .16); }
.hp-included p.hp-inc-title { font-size: 32px; font-weight: 800; color: #135E5A; }
.hp-included p.hp-inc-title::before, .hp-included p.hp-inc-title::after { content: "✦"; display: inline-block; margin: 0 .45em; font-size: .7em; color: #fff; text-shadow: 0 0 6px rgba(255,255,255,.9); vertical-align: .15em; }
.hp-included p.hp-inc-sub { color: #135E5A; font-weight: 600; margin-bottom: 24px; }
.hp-included ul.hp-inc-grid { gap: 18px; }
.hp-included li.hp-inc-card { border: 0; border-radius: 16px; padding: 18px 12px 18px; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.08); transition: transform .15s, box-shadow .15s; }
.hp-included li.hp-inc-card:hover { transform: translateY(-3px); box-shadow: 0 6px 18px rgba(0,0,0,.14); }
.hp-inc-img { display: block; width: 150px; max-width: 100%; aspect-ratio: 1 / 1; border-radius: 50%; overflow: hidden; margin: 0 auto 4px; box-shadow: 0 0 0 3px var(--hp-border); }
.hp-included .hp-inc-img img { display: block; width: 100%; height: 100%; max-width: none; margin: 0 !important; padding: 0; border: 0; object-fit: cover; object-position: center; }
.hp-inc-text { color: #135E5A; font-size: 16px; }
.hp-included p.hp-inc-note { color: #135E5A; font-weight: 600; }
@media (max-width: 767px) { .hp-included { padding: 26px 12px 18px; border-radius: 18px; } .hp-included p.hp-inc-title { font-size: 24px; } .hp-inc-img { width: 110px; } .hp-inc-text { font-size: 14px; } }

/* ---------- Дисклеймер в подвале (2026-09) ---------- */
.hp-disclaimer-foot { margin: 0; padding: 14px 16px; text-align: center; font-size: 13px; line-height: 1.5; color: #fff; opacity: .92; }

/* ---------- Городские страницы: новогодний блок и строка в подвале (2026-09) ---------- */
.hp-xmas-city { max-width: 760px; margin: 28px auto 8px; padding: 14px 18px; border-radius: 14px; background: linear-gradient(135deg, #F5FCFB 0%, #EDE8FA 100%); border: 1px solid var(--hp-border); text-align: center; font-weight: 700; }
.hp-xmas-city a { color: var(--hp-dark) !important; text-decoration: none !important; }
.hp-xmas-city a:hover { text-decoration: underline !important; }
.hp-cities-foot { margin: 0; padding: 12px 16px 0; text-align: center; font-size: 14px; font-weight: 700; color: #fff; }
.hp-cities-foot a { color: #fff !important; text-decoration: underline; }

/* ---------- Соцсети: только в подвале (2026-09-28) ---------- */
footer .dt-sc-social-icons-mobile { display: flex !important; flex-wrap: wrap; gap: 12px; margin: 16px 0 0; width: 100% !important; float: none !important; clear: both; }
footer .dt-sc-social-icons-mobile a { flex: 0 0 44px !important; display: inline-flex !important; align-items: center; justify-content: center; width: 44px !important; height: 44px !important; margin: 0 !important; border-radius: 50%; background: var(--hp-dark); text-decoration: none !important; transition: background .15s; }
footer .dt-sc-social-icons-mobile a span { color: #fff !important; font-size: 20px; line-height: 1; }
footer .dt-sc-social-icons-mobile a:hover, footer .dt-sc-social-icons-mobile a:focus-visible { background: var(--hp-dark-hover, #1F645D); }
@media (max-width: 767px) { footer .dt-sc-social-icons-mobile { justify-content: center; } }

/* ---------- YouTube по клику (сниппет hpYouTube, чанк hp-yt-js; 2026-09-28) ---------- */
.hp-yt { max-width: 800px; margin: 20px auto; }
.hp-yt-btn { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: 14px; overflow: hidden; background: #D6F1EE; cursor: pointer; }
.hp-yt-btn img { display: block; width: 100%; height: 100%; margin: 0 !important; object-fit: cover; }
.hp-yt-play { position: absolute; left: 50%; top: 50%; width: 76px; height: 76px; margin: -38px 0 0 -38px; border-radius: 50%; background: rgba(39, 127, 119, .92); box-shadow: 0 4px 16px rgba(0,0,0,.25); transition: transform .15s, background .15s; }
.hp-yt-play::after { content: ""; position: absolute; left: 31px; top: 23px; border-style: solid; border-width: 15px 0 15px 24px; border-color: transparent transparent transparent #fff; }
.hp-yt-btn:hover .hp-yt-play, .hp-yt-btn:focus-visible .hp-yt-play { transform: scale(1.08); background: var(--hp-dark-hover, #1F645D); }
.hp-yt-frame { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 14px; }
.hp-yt-note { margin: 6px 0 0 !important; font-size: 13px; text-align: center !important; color: var(--hp-text); opacity: .85; }
.home-video-note { margin: 4px 0 0; font-size: 12px; text-align: center; color: var(--hp-text); opacity: .85; }
