/* =========================================================================
   КУП «Слуцкое ЖКХ» — visual polish (v1)
   All colours reference Blocksy's --theme-palette-color-1..8 which we set
   in theme_mods_blocksy so both Customizer and this stylesheet stay in sync.
   Loaded via functions.php with version 1.0.5.
   ========================================================================= */

:root {
  --sluzk-green:        #2E7D32;   /* primary — deeper than Joomla's #2E9D31 for institutional feel */
  --sluzk-green-dark:   #1B5E20;   /* hover */
  --sluzk-green-soft:   #E8F5E9;   /* tinted background for callouts */
  --sluzk-accent:       #C77700;   /* amber, for announcements — accessible against white */
  --sluzk-text:         #1F2937;
  --sluzk-text-muted:   #4B5563;
  --sluzk-bg:           #FFFFFF;
  --sluzk-bg-alt:       #F5F7F5;
  --sluzk-border:       #E1E7E1;
  --sluzk-shadow-sm:    0 1px 2px rgba(31, 41, 55, .06);
  --sluzk-shadow-md:    0 2px 8px rgba(31, 41, 55, .08);
}

/* ------- Typography --------------------------------------------------- */

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  /* Blocksy sets --theme-font-family via theme_mods (Customizer); this is a fallback */
  font-feature-settings: "kern" 1, "liga" 1, "clig" 1, "calt" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6, .wp-block-heading {
  font-family: var(--theme-font-family);
  color: var(--sluzk-text);
  letter-spacing: -0.005em;
  text-wrap: balance;
}

a { color: var(--sluzk-green); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover, a:focus { color: var(--sluzk-green-dark); }

/* Focus outline — keep visible for a11y */
a:focus-visible, button:focus-visible, [role="button"]:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid var(--sluzk-green);
  outline-offset: 2px;
}

/* ------- Header ------------------------------------------------------ */

/* Top utility row — municipal-style compact info bar */
[data-header*="type-1"] .ct-header [data-row*="top"] {
  --theme-border-bottom: 1px solid var(--sluzk-border);
  --height: 40px;
  background: var(--sluzk-bg-alt);
  font-size: 13px;
  color: var(--sluzk-text-muted);
}
[data-header*="type-1"] .ct-header [data-row*="top"] .ct-header-text {
  padding: 6px 0;
}
[data-header*="type-1"] .ct-header [data-row*="top"] .sluzk-a11y-trigger,
[data-header*="type-1"] .ct-header [data-row*="top"] .sluzk-lang-placeholder {
  display: inline-block;
  padding: 2px 10px;
  background: #fff;
  border: 1px solid var(--sluzk-border);
  border-radius: 4px;
  color: var(--sluzk-text);
  text-decoration: none;
  font-size: 12px;
  margin-left: 6px;
}
[data-header*="type-1"] .ct-header [data-row*="top"] .sluzk-a11y-trigger:hover {
  background: var(--sluzk-green-soft); border-color: var(--sluzk-green);
}

/* GTranslate widget in the header utility row.
   Blocksy's Header Text widget wraps content in .entry-content.is-layout-flow,
   which forces block-level children to full width — that stacks the flag
   anchors vertically. Force inline-flex on our wrapper and on the GTranslate
   plugin's inner container so the 5 flags render as a horizontal row.        */
.sluzk-lang-switch {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
  margin-left: 8px;
  line-height: 1;
}
.sluzk-lang-switch .gtranslate_wrapper {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  margin: 0;
}
.sluzk-lang-switch .gtranslate_wrapper .glink {
  display: inline-flex;
  align-items: center;
  padding: 0;
  margin: 0;
  line-height: 1;
  border-radius: 2px;
  transition: opacity .12s ease, transform .12s ease;
}
.sluzk-lang-switch .gtranslate_wrapper .glink img {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
  width: 24px;
  height: auto;
}
.sluzk-lang-switch .gtranslate_wrapper .glink:hover {
  opacity: .85;
  transform: translateY(-1px);
}
.sluzk-lang-switch .gtranslate_wrapper .glink:focus-visible {
  outline: 2px solid var(--sluzk-green);
  outline-offset: 2px;
}
/* Hide the "gt-current-lang" label (native names) if it ever appears */
.sluzk-lang-switch .gt-current-lang { display: none; }

/* Main header row — official institutional band */
[data-header*="type-1"] .ct-header [data-row*="middle"] {
  --height: 88px;
  background-color: var(--sluzk-bg) !important;
  --theme-border-bottom: 2px solid var(--sluzk-green);
}
[data-header*="type-1"] .site-title,
[data-header*="type-1"] .site-title a {
  color: var(--sluzk-green) !important;
  font-weight: 700;
}

/* Main menu — bigger click targets */
[data-header*="type-1"] .ct-header [data-id="menu"] > ul > li > a {
  --theme-font-size: 14px !important;
  --theme-text-transform: none !important;
  --theme-link-initial-color: var(--sluzk-text) !important;
  padding: 8px 12px;
}
[data-header*="type-1"] .ct-header [data-id="menu"] > ul > li > a:hover,
[data-header*="type-1"] .ct-header [data-id="menu"] > ul > li.current-menu-item > a {
  color: var(--sluzk-green) !important;
}

/* Off-canvas mobile menu */
[data-header*="type-1"] #offcanvas .ct-panel-inner {
  background-color: #1B2A20 !important;
}

/* ------- Buttons ----------------------------------------------------- */

.wp-block-button__link,
.wp-block-button__link.has-background,
.wp-block-button__link.has-palette-color-1-background-color,
.button, button[type="submit"], input[type="submit"] {
  background-color: var(--sluzk-green) !important;
  color: #fff !important;
  border-radius: 4px;
  padding: 10px 22px;
  font-weight: 600;
  border: 1px solid transparent;
  transition: background .15s ease, box-shadow .15s ease;
  text-decoration: none;
}
.wp-block-button__link:hover,
.button:hover, button[type="submit"]:hover, input[type="submit"]:hover {
  background-color: var(--sluzk-green-dark);
  box-shadow: var(--sluzk-shadow-md);
  color: #fff;
}
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--sluzk-green);
  border-color: var(--sluzk-green);
}

/* ------- Section polish + spacing ------------------------------------ */

.sluzk-home-hero,
.sluzk-home-announcements,
.sluzk-home-news,
.sluzk-home-citizens,
.sluzk-home-services,
.sluzk-home-documents,
.sluzk-home-contacts,
.sluzk-home-additional {
  padding: 42px 0;
}
.sluzk-home-hero { background: var(--sluzk-bg-alt); padding: 52px 0 40px; }
.sluzk-home-hero h1 { font-size: clamp(28px, 4vw, 40px); margin: 0 0 8px; color: var(--sluzk-green); }
.sluzk-home-hero h2 { font-size: clamp(18px, 2vw, 22px); font-weight: 500; color: var(--sluzk-text-muted); margin: 0 0 24px; }

.sluzk-home-announcements { background: var(--sluzk-green-soft); border-left: 4px solid var(--sluzk-accent); padding-left: 20px; }

section.wp-block-group + hr.wp-block-separator { display: none; }  /* remove the temp separators used during structural build */

/* Section titles */
.sluzk-home-news h2,
.sluzk-home-citizens h2,
.sluzk-home-services h2,
.sluzk-home-documents h2,
.sluzk-home-contacts h2,
.sluzk-home-additional h2 {
  font-size: 26px;
  margin: 0 0 24px;
  padding-bottom: 10px;
  border-bottom: 3px solid var(--sluzk-green);
  display: inline-block;
}

/* ------- News cards (homepage query loop) ---------------------------- */

.sluzk-home-news .wp-block-query .wp-block-post-template {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}
.sluzk-home-news .wp-block-query .wp-block-post-template > li {
  background: var(--sluzk-bg);
  border: 1px solid var(--sluzk-border);
  border-radius: 6px;
  padding: 18px 20px;
  box-shadow: var(--sluzk-shadow-sm);
  transition: box-shadow .15s ease, transform .15s ease;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sluzk-home-news .wp-block-query .wp-block-post-template > li:hover {
  box-shadow: var(--sluzk-shadow-md);
  transform: translateY(-1px);
}
.sluzk-home-news .wp-block-post-date,
.entry-content .wp-block-post-date {
  color: var(--sluzk-text-muted);
  font-size: 13px;
}
.sluzk-home-news .wp-block-post-title { font-size: 17px; line-height: 1.35; margin: 4px 0 6px; }
.sluzk-home-news .wp-block-post-title a { color: var(--sluzk-text); text-decoration: none; font-weight: 600; }
.sluzk-home-news .wp-block-post-title a:hover { color: var(--sluzk-green); }
.sluzk-home-news .wp-block-post-excerpt { margin: 0; font-size: 14px; color: var(--sluzk-text-muted); }

.sluzk-home-news > .wp-block-group > .wp-block-paragraph:last-child a {
  display: inline-block;
  margin-top: 14px;
  color: var(--sluzk-green);
  font-weight: 600;
  text-decoration: none;
}
.sluzk-home-news > .wp-block-group > .wp-block-paragraph:last-child a:hover { text-decoration: underline; }

/* ------- Citizen / service cards (columns) --------------------------- */

.sluzk-home-citizens .wp-block-columns,
.sluzk-home-services .wp-block-columns {
  gap: 16px !important;
}
.sluzk-home-citizens .wp-block-column,
.sluzk-home-services .wp-block-column {
  background: var(--sluzk-bg);
  border: 1px solid var(--sluzk-border);
  border-radius: 6px;
  padding: 20px 22px;
  box-shadow: var(--sluzk-shadow-sm);
  transition: box-shadow .15s ease, border-color .15s ease;
}
.sluzk-home-citizens .wp-block-column:hover,
.sluzk-home-services .wp-block-column:hover {
  border-color: var(--sluzk-green);
  box-shadow: var(--sluzk-shadow-md);
}
.sluzk-home-citizens .wp-block-column h3,
.sluzk-home-services .wp-block-column h3 { margin: 0 0 8px; font-size: 17px; }
.sluzk-home-citizens .wp-block-column h3 a,
.sluzk-home-services .wp-block-column h3 a { color: var(--sluzk-green); text-decoration: none; }
.sluzk-home-citizens .wp-block-column h3 a:hover,
.sluzk-home-services .wp-block-column h3 a:hover { text-decoration: underline; color: var(--sluzk-green-dark); }
.sluzk-home-citizens .wp-block-column p,
.sluzk-home-services .wp-block-column p { margin: 0; color: var(--sluzk-text-muted); font-size: 14px; }

/* ------- Contact section --------------------------------------------- */

.sluzk-home-contacts .sluzk-footer-org { background: var(--sluzk-green-soft); padding: 20px 24px; border-radius: 6px; border: 1px solid var(--sluzk-border); }
.sluzk-home-contacts .sluzk-footer-name { color: var(--sluzk-green); font-size: 17px; margin-bottom: 8px; }
.sluzk-home-contacts .sluzk-footer-name strong { font-weight: 700; }
.sluzk-home-contacts .sluzk-footer-org div { margin: 3px 0; line-height: 1.55; }

/* ------- Category / archive layout ----------------------------------- */

[data-prefix="categories"] .entry-card {
  background: var(--sluzk-bg) !important;
  border: 1px solid var(--sluzk-border) !important;
  border-radius: 6px !important;
  --theme-box-shadow: var(--sluzk-shadow-sm) !important;
}
[data-prefix="categories"] .entry-card .entry-title { --theme-font-size: 18px !important; --theme-line-height: 1.35 !important; }
[data-prefix="categories"] .entry-card .entry-title a { color: var(--sluzk-text) !important; text-decoration: none !important; }
[data-prefix="categories"] .entry-card .entry-title a:hover { color: var(--sluzk-green) !important; }

/* ------- Single post ------------------------------------------------- */

[data-prefix="single_blog_post"] .entry-header .page-title {
  color: var(--sluzk-text) !important;
  --theme-font-size: 30px !important;
  line-height: 1.3;
  text-wrap: balance;
}
[data-prefix="single_blog_post"] .hero-section[data-type="type-2"] {
  background: var(--sluzk-bg-alt) !important;
  padding: 24px 0 !important;
}
[data-prefix="single_blog_post"] .ct-breadcrumbs {
  --theme-text-transform: none !important;
  --theme-font-size: 13px !important;
  color: var(--sluzk-text-muted) !important;
  margin-bottom: 8px;
}
[data-prefix="single_blog_post"] .ct-breadcrumbs a { color: var(--sluzk-green) !important; }

/* Prepended date + category (injected by child-theme functions.php) */
.sluzk-post-meta {
  font-size: 13px;
  color: var(--sluzk-text-muted);
  margin: 0 0 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--sluzk-border);
  line-height: 1.4;
}
.sluzk-post-meta__date { font-weight: 600; color: var(--sluzk-text); }
.sluzk-post-meta__sep { opacity: .5; margin: 0 4px; }
.sluzk-post-meta__cats a { color: var(--sluzk-green); text-decoration: none; }
.sluzk-post-meta__cats a:hover { text-decoration: underline; color: var(--sluzk-green-dark); }

/* Entry meta line */
[data-prefix="single_blog_post"] .entry-meta {
  --theme-font-weight: 400 !important;
  --theme-text-transform: none !important;
  --theme-font-size: 13px !important;
  color: var(--sluzk-text-muted) !important;
}
[data-prefix="single_blog_post"] .entry-meta a { color: var(--sluzk-green) !important; }

/* Article body typography */
[data-prefix="single_blog_post"] .entry-content {
  font-size: 16px;
  line-height: 1.7;
  color: var(--sluzk-text);
}
[data-prefix="single_blog_post"] .entry-content h2 {
  font-size: 24px;
  margin: 28px 0 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--sluzk-border);
}
[data-prefix="single_blog_post"] .entry-content h3 { font-size: 20px; margin: 24px 0 10px; }
[data-prefix="single_blog_post"] .entry-content h4 { font-size: 17px; margin: 20px 0 8px; }
[data-prefix="single_blog_post"] .entry-content p { margin: 0 0 1em; }
[data-prefix="single_blog_post"] .entry-content ul,
[data-prefix="single_blog_post"] .entry-content ol { margin: 0 0 1em; padding-left: 24px; }
[data-prefix="single_blog_post"] .entry-content ul li,
[data-prefix="single_blog_post"] .entry-content ol li { margin-bottom: 4px; }
[data-prefix="single_blog_post"] .entry-content blockquote {
  border-left: 3px solid var(--sluzk-green);
  background: var(--sluzk-bg-alt);
  padding: 12px 18px;
  margin: 20px 0;
  font-style: italic;
  color: var(--sluzk-text-muted);
}

/* Inline images from imported news: responsive + centred + no distortion */
[data-prefix="single_blog_post"] .entry-content img {
  max-width: 100% !important;
  height: auto !important;
  display: block;
  margin: 16px auto;
  border-radius: 4px;
}
[data-prefix="single_blog_post"] .entry-content figure { margin: 20px 0; }

/* Document links — file-type badges (PDF/DOC/DOCX/XLS/XLSX) */
[data-prefix="single_blog_post"] .entry-content a[href$=".pdf"],
[data-prefix="single_blog_post"] .entry-content a[href$=".PDF"],
[data-prefix="single_blog_post"] .entry-content a[href$=".doc"],
[data-prefix="single_blog_post"] .entry-content a[href$=".DOC"],
[data-prefix="single_blog_post"] .entry-content a[href$=".docx"],
[data-prefix="single_blog_post"] .entry-content a[href$=".DOCX"],
[data-prefix="single_blog_post"] .entry-content a[href$=".xls"],
[data-prefix="single_blog_post"] .entry-content a[href$=".XLS"],
[data-prefix="single_blog_post"] .entry-content a[href$=".xlsx"],
[data-prefix="single_blog_post"] .entry-content a[href$=".XLSX"],
[data-prefix="single_blog_post"] .entry-content a[href$=".rtf"],
[data-prefix="single_blog_post"] .entry-content a[href$=".odt"] {
  display: inline-block;
  padding: 3px 10px 3px 30px;
  background: var(--sluzk-bg-alt);
  border: 1px solid var(--sluzk-border);
  border-radius: 4px;
  color: var(--sluzk-text);
  text-decoration: none;
  font-weight: 500;
  position: relative;
  transition: background .15s, border-color .15s;
}
[data-prefix="single_blog_post"] .entry-content a[href$=".pdf"]:hover,
[data-prefix="single_blog_post"] .entry-content a[href$=".doc"]:hover,
[data-prefix="single_blog_post"] .entry-content a[href$=".docx"]:hover,
[data-prefix="single_blog_post"] .entry-content a[href$=".xls"]:hover,
[data-prefix="single_blog_post"] .entry-content a[href$=".xlsx"]:hover {
  background: var(--sluzk-green-soft);
  border-color: var(--sluzk-green);
}
[data-prefix="single_blog_post"] .entry-content a[href$=".pdf"]::before,
[data-prefix="single_blog_post"] .entry-content a[href$=".PDF"]::before {
  content: 'PDF'; background: #C1272D;
}
[data-prefix="single_blog_post"] .entry-content a[href$=".doc"]::before,
[data-prefix="single_blog_post"] .entry-content a[href$=".DOC"]::before,
[data-prefix="single_blog_post"] .entry-content a[href$=".docx"]::before,
[data-prefix="single_blog_post"] .entry-content a[href$=".DOCX"]::before {
  content: 'DOC'; background: #2B579A;
}
[data-prefix="single_blog_post"] .entry-content a[href$=".xls"]::before,
[data-prefix="single_blog_post"] .entry-content a[href$=".XLS"]::before,
[data-prefix="single_blog_post"] .entry-content a[href$=".xlsx"]::before,
[data-prefix="single_blog_post"] .entry-content a[href$=".XLSX"]::before {
  content: 'XLS'; background: #217346;
}
[data-prefix="single_blog_post"] .entry-content a[href$=".rtf"]::before,
[data-prefix="single_blog_post"] .entry-content a[href$=".odt"]::before {
  content: 'DOC'; background: #7A7A7A;
}
[data-prefix="single_blog_post"] .entry-content a[href*=".pdf"]::before,
[data-prefix="single_blog_post"] .entry-content a[href*=".doc"]::before,
[data-prefix="single_blog_post"] .entry-content a[href*=".xls"]::before,
[data-prefix="single_blog_post"] .entry-content a[href*=".rtf"]::before,
[data-prefix="single_blog_post"] .entry-content a[href*=".odt"]::before {
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 4px;
  border-radius: 3px;
  letter-spacing: 0.02em;
  line-height: 1;
}

/* YouTube + generic iframe responsive wrapper.
   WP's oembed puts YouTube iframes inside .wp-block-embed__wrapper — style both. */
[data-prefix="single_blog_post"] .entry-content .wp-block-embed,
[data-prefix="single_blog_post"] .entry-content .wp-block-embed__wrapper,
[data-prefix="single_blog_post"] .entry-content iframe {
  max-width: 100%;
}
[data-prefix="single_blog_post"] .entry-content iframe[src*="youtube"],
[data-prefix="single_blog_post"] .entry-content iframe[src*="youtu.be"] {
  aspect-ratio: 16 / 9;
  width: 100%;
  height: auto;
  border: 0;
  display: block;
  margin: 20px auto;
}
/* Wrap any stand-alone iframe not inside a WP embed block */
[data-prefix="single_blog_post"] .entry-content p > iframe {
  aspect-ratio: 16 / 9;
  width: 100%;
  height: auto;
}

/* Post navigation (prev/next) */
[data-prefix="single_blog_post"] nav.post-navigation,
[data-prefix="single_blog_post"] .post-nav-links,
[data-prefix="single_blog_post"] [class*="ct-post-navigation"] {
  border-top: 1px solid var(--sluzk-border);
  border-bottom: 1px solid var(--sluzk-border);
  padding: 20px 0;
  margin: 32px 0 24px;
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
[data-prefix="single_blog_post"] .post-nav-links a,
[data-prefix="single_blog_post"] [class*="ct-post-navigation"] a {
  color: var(--sluzk-text);
  text-decoration: none;
  padding: 12px 16px;
  border: 1px solid var(--sluzk-border);
  border-radius: 4px;
  transition: background .15s, border-color .15s;
  display: block;
}
[data-prefix="single_blog_post"] .post-nav-links a:hover,
[data-prefix="single_blog_post"] [class*="ct-post-navigation"] a:hover {
  background: var(--sluzk-bg-alt);
  border-color: var(--sluzk-green);
  color: var(--sluzk-text);
}
[data-prefix="single_blog_post"] .post-nav-links .nav-label,
[data-prefix="single_blog_post"] [class*="ct-post-navigation"] [class*="label"] {
  font-size: 12px;
  color: var(--sluzk-green);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  display: block;
  margin-bottom: 4px;
}

/* Related posts */
[data-prefix="single_blog_post"] .ct-related-posts-title,
[data-prefix="single_blog_post"] .related-posts-title {
  font-size: 20px;
  margin: 32px 0 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--sluzk-green);
  display: inline-block;
  color: var(--sluzk-text);
}

/* "Return to News" link — real clickable anchor injected by the child theme (see functions.php) */
.sluzk-back-to-news {
  display: block;
  text-align: center;
  margin: 24px auto;
  padding: 10px 18px;
  max-width: max-content;
  border: 1px solid var(--sluzk-border);
  border-radius: 4px;
  color: var(--sluzk-green);
  font-weight: 600;
  background: var(--sluzk-bg);
  transition: background .15s, border-color .15s;
  text-decoration: none;
}
.sluzk-back-to-news:hover {
  background: var(--sluzk-green-soft);
  border-color: var(--sluzk-green);
  color: var(--sluzk-green-dark);
}

/* ------- Native <details> block (used for spoiler-style panels) ------ */
.entry-content details.wp-block-details {
  border: 1px solid var(--sluzk-border);
  border-radius: 6px;
  padding: 12px 18px;
  margin: 20px 0;
  background: var(--sluzk-bg);
  transition: background .15s ease;
}
.entry-content details.wp-block-details[open] {
  background: var(--sluzk-bg-alt);
  box-shadow: var(--sluzk-shadow-sm);
}
.entry-content details.wp-block-details > summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--sluzk-text);
  padding: 6px 0;
  list-style: none;
  position: relative;
  padding-left: 28px;
  outline: none;
}
.entry-content details.wp-block-details > summary::-webkit-details-marker { display: none; }
.entry-content details.wp-block-details > summary::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--sluzk-green);
  border-bottom: 2px solid var(--sluzk-green);
  transform: translateY(-70%) rotate(45deg);
  transition: transform .2s;
}
.entry-content details.wp-block-details[open] > summary::before {
  transform: translateY(-30%) rotate(-135deg);
}
.entry-content details.wp-block-details > summary:hover { color: var(--sluzk-green); }
.entry-content details.wp-block-details > *:not(summary) { margin-top: 12px; }

/* ------- Single PAGE: apply same content styling as single_blog_post - */

[data-prefix="single_page"] .entry-content { font-size: 16px; line-height: 1.7; color: var(--sluzk-text); }
[data-prefix="single_page"] .entry-content h2 { font-size: 24px; margin: 28px 0 12px; padding-bottom: 6px; border-bottom: 1px solid var(--sluzk-border); }
[data-prefix="single_page"] .entry-content h3 { font-size: 20px; margin: 24px 0 10px; }
[data-prefix="single_page"] .entry-content h4 { font-size: 17px; margin: 20px 0 8px; }
[data-prefix="single_page"] .entry-content ul,
[data-prefix="single_page"] .entry-content ol { margin: 0 0 1em; padding-left: 24px; }
[data-prefix="single_page"] .entry-content ul li,
[data-prefix="single_page"] .entry-content ol li { margin-bottom: 4px; }
[data-prefix="single_page"] .entry-content p { margin: 0 0 1em; }
[data-prefix="single_page"] .entry-content img { max-width: 100% !important; height: auto !important; display: block; margin: 16px auto; border-radius: 4px; }
[data-prefix="single_page"] .entry-content figure { margin: 20px 0; }

/* Highlight callout paragraph */
[data-prefix="single_page"] .entry-content p.is-style-highlight,
[data-prefix="single_blog_post"] .entry-content p.is-style-highlight {
  background: var(--sluzk-green-soft);
  border-left: 4px solid var(--sluzk-accent);
  padding: 12px 18px;
  margin: 20px 0;
}

/* Page breadcrumbs */
[data-prefix="single_page"] .ct-breadcrumbs {
  --theme-text-transform: none !important;
  --theme-font-size: 13px !important;
  color: var(--sluzk-text-muted) !important;
  margin-bottom: 8px;
}
[data-prefix="single_page"] .ct-breadcrumbs a { color: var(--sluzk-green) !important; }
[data-prefix="single_page"] .entry-header .page-title { color: var(--sluzk-text) !important; text-wrap: balance; }

/* Copy doc-link badges to pages too */
[data-prefix="single_page"] .entry-content a[href$=".pdf" i],
[data-prefix="single_page"] .entry-content a[href$=".doc" i],
[data-prefix="single_page"] .entry-content a[href$=".docx" i],
[data-prefix="single_page"] .entry-content a[href$=".xls" i],
[data-prefix="single_page"] .entry-content a[href$=".xlsx" i],
[data-prefix="single_page"] .entry-content a[href$=".rtf" i],
[data-prefix="single_page"] .entry-content a[href$=".odt" i] {
  display: inline-block;
  padding: 3px 10px 3px 30px;
  background: var(--sluzk-bg-alt);
  border: 1px solid var(--sluzk-border);
  border-radius: 4px;
  color: var(--sluzk-text);
  text-decoration: none;
  font-weight: 500;
  position: relative;
}
[data-prefix="single_page"] .entry-content a[href$=".pdf" i]::before { content: 'PDF'; background: #C1272D; }
[data-prefix="single_page"] .entry-content a[href$=".doc" i]::before,
[data-prefix="single_page"] .entry-content a[href$=".docx" i]::before { content: 'DOC'; background: #2B579A; }
[data-prefix="single_page"] .entry-content a[href$=".xls" i]::before,
[data-prefix="single_page"] .entry-content a[href$=".xlsx" i]::before { content: 'XLS'; background: #217346; }
[data-prefix="single_page"] .entry-content a[href*=".pdf" i]::before,
[data-prefix="single_page"] .entry-content a[href*=".doc" i]::before,
[data-prefix="single_page"] .entry-content a[href*=".xls" i]::before {
  position: absolute; left: 4px; top: 50%; transform: translateY(-50%);
  color: #fff; font-size: 9px; font-weight: 700; padding: 2px 4px; border-radius: 3px; line-height: 1;
}

/* Wrap wide tables inside <details> so the details container doesn't force overflow */
.entry-content details.wp-block-details figure.wp-block-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}

/* ------- ARCHIVE / CATEGORY: news cards ------------------------------ */

[data-prefix="categories"] .hero-section[data-type="type-2"],
[data-prefix="blog"]       .hero-section[data-type="type-2"] {
  background: var(--sluzk-bg-alt) !important;
  padding: 32px 0 !important;
}
[data-prefix="categories"] .entry-header .page-title {
  color: var(--sluzk-text) !important;
  --theme-font-size: 28px !important;
  --theme-line-height: 1.3 !important;
}
[data-prefix="categories"] .entries {
  gap: 24px !important;
}
[data-prefix="categories"] .entry-card,
[data-prefix="blog"] .entry-card {
  background: var(--sluzk-bg) !important;
  border-radius: 6px !important;
  overflow: hidden;
  transition: box-shadow .15s ease, transform .15s ease;
}
[data-prefix="categories"] .entry-card:hover,
[data-prefix="blog"] .entry-card:hover {
  transform: translateY(-1px);
}
[data-prefix="categories"] .entry-card .entry-title { --theme-font-size: 18px !important; --theme-line-height: 1.35 !important; margin: 0 0 8px !important; }
[data-prefix="categories"] .entry-card .entry-title a,
[data-prefix="blog"] .entry-card .entry-title a { color: var(--sluzk-text) !important; text-decoration: none !important; }
[data-prefix="categories"] .entry-card .entry-title a:hover,
[data-prefix="blog"] .entry-card .entry-title a:hover { color: var(--sluzk-green) !important; }
[data-prefix="categories"] .entry-card .entry-meta,
[data-prefix="blog"] .entry-card .entry-meta {
  --theme-text-transform: none !important;
  --theme-font-weight: 400 !important;
  --theme-font-size: 12px !important;
  color: var(--sluzk-text-muted) !important;
  margin: 0 0 6px !important;
}
[data-prefix="categories"] .entry-card .entry-excerpt,
[data-prefix="blog"] .entry-card .entry-excerpt {
  color: var(--sluzk-text-muted);
  font-size: 14px;
  margin: 8px 0 12px;
}
[data-prefix="categories"] .entry-card .entry-card-content,
[data-prefix="categories"] .entry-card .entry-card-body {
  padding: 16px 18px !important;
}
[data-prefix="categories"] .entry-card .ct-image-container img {
  transition: transform .3s ease;
}
[data-prefix="categories"] .entry-card:hover .ct-image-container img {
  transform: scale(1.02);
}
[data-prefix="categories"] .read-more-button,
[data-prefix="categories"] .more-link {
  color: var(--sluzk-green) !important;
  font-weight: 600;
  text-decoration: none;
}
[data-prefix="categories"] .read-more-button:hover,
[data-prefix="categories"] .more-link:hover { color: var(--sluzk-green-dark) !important; text-decoration: underline; }

/* Pagination */
[data-prefix="categories"] .ct-pagination .page-numbers {
  border: 1px solid var(--sluzk-border);
  background: var(--sluzk-bg);
  color: var(--sluzk-text);
  padding: 8px 14px;
  border-radius: 4px;
  margin: 0 2px;
  text-decoration: none;
}
[data-prefix="categories"] .ct-pagination .page-numbers.current,
[data-prefix="categories"] .ct-pagination .page-numbers:hover {
  background: var(--sluzk-green);
  color: #fff;
  border-color: var(--sluzk-green);
}

/* ------- Global TABLE styling — global, applies to imported news too - */

.entry-content > table,
.wp-block-table,
.wp-block-table > table {
  border-collapse: collapse;
  width: 100%;
  margin: 20px 0;
  font-size: 15px;
  border: 1px solid var(--sluzk-border);
}
.entry-content > table th,
.entry-content > table td,
.wp-block-table th,
.wp-block-table td {
  padding: 10px 14px;
  border: 1px solid var(--sluzk-border);
  vertical-align: top;
  text-align: left;
}
.entry-content > table th,
.wp-block-table th {
  background: var(--sluzk-green-soft);
  color: var(--sluzk-text);
  font-weight: 600;
}
.entry-content > table tr:nth-child(2n) td,
.wp-block-table tr:nth-child(2n) td {
  background: #FAFBFA;
}

/* Horizontal-scroll wrapper — required for wide tariff tables on mobile.
   Wraps every non-block <table> without needing to touch the imported HTML. */
.entry-content > table {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}
figure.wp-block-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ------- Footer ------------------------------------------------------ */

[data-footer*="type-1"] .ct-footer {
  background-color: #1B2A20 !important;
  color: rgba(255,255,255,.85);
}
[data-footer*="type-1"] .ct-footer a { color: #fff; text-decoration: none; }
[data-footer*="type-1"] .ct-footer a:hover { color: #A5D6A7; text-decoration: underline; }
[data-footer*="type-1"] .ct-footer [data-row*="top"] { padding: 32px 0 24px; }
[data-footer*="type-1"] .ct-footer [data-row*="middle"] { padding: 16px 0; border-top: 1px solid rgba(255,255,255,.1); }
[data-footer*="type-1"] .ct-footer [data-row*="bottom"] {
  padding: 14px 0;
  background: #14211A;
  color: rgba(255,255,255,.65);
  font-size: 13px;
}
[data-footer*="type-1"] .ct-footer .sluzk-footer-org { color: rgba(255,255,255,.9); }
[data-footer*="type-1"] .ct-footer .sluzk-footer-name { color: #fff; font-size: 16px; margin-bottom: 8px; }
[data-footer*="type-1"] .ct-footer .sluzk-footer-name strong { color: #fff; }
[data-footer*="type-1"] .ct-footer .sluzk-footer-org div { margin: 3px 0; line-height: 1.55; }
[data-footer*="type-1"] .ct-footer .sluzk-footer-email a { color: #A5D6A7; }
[data-footer*="type-1"] #footer-menu ul { display: flex; flex-wrap: wrap; gap: 4px 24px; margin: 0; padding: 0; list-style: none; }
[data-footer*="type-1"] #footer-menu li a { font-size: 14px; padding: 4px 0; }
[data-footer*="type-1"] .ct-footer-copyright { text-align: center; }

/* ------- Sidebar (Main) --------------------------------------------- */

.ct-sidebar .widget { padding: 18px 20px; background: var(--sluzk-bg); border: 1px solid var(--sluzk-border); border-radius: 6px; margin-bottom: 20px; }
.ct-sidebar .widget-title { font-size: 15px; margin: 0 0 12px; color: var(--sluzk-text); border-bottom: 2px solid var(--sluzk-green); padding-bottom: 6px; }
.ct-sidebar input[type="search"] { border: 1px solid var(--sluzk-border); border-radius: 4px; padding: 8px 10px; }

/* ------- Homepage: hide auto page-title + sidebar (full-width home) - */
body.home .entry-header,
body.home .page-title,
body.page-id-12 .entry-header {
  display: none !important;
}
body.home .ct-sidebar,
body.page-id-12 .ct-sidebar { display: none !important; }
body.home .content-area,
body.page-id-12 .content-area { grid-template-columns: 1fr !important; }
body.home article.post-12 { max-width: 100%; }
body.home .entry-content > .wp-block-group { max-width: none !important; }

/* Hero section takes the full container width */
.sluzk-home-hero > .wp-block-group { max-width: 960px; margin: 0 auto; }
.sluzk-home-hero .wp-block-buttons { margin-top: 24px; }

/* Sample styled table also inside single-post */
.entry-content .wp-block-buttons { margin-top: 16px; }

/* Compact hover indicator for menu — the underline effect */
[data-header*="type-1"] .ct-header [data-id="menu"] > ul > li > a::after {
  content: '';
  display: block;
  height: 2px;
  background: var(--sluzk-green);
  transform: scaleX(0);
  transition: transform .15s ease;
  margin-top: 2px;
}
[data-header*="type-1"] .ct-header [data-id="menu"] > ul > li:hover > a::after,
[data-header*="type-1"] .ct-header [data-id="menu"] > ul > li.current-menu-item > a::after {
  transform: scaleX(1);
}

/* ------- Responsive --------------------------------------------------- */

@media (max-width: 999px) {
  [data-header*="type-1"] .ct-header [data-row*="top"] { display: none; }
  [data-header*="type-1"] .ct-header [data-row*="middle"] { --height: 64px !important; }
  .sluzk-home-hero { padding: 32px 0 24px; }
  .sluzk-home-news .wp-block-query .wp-block-post-template { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 780px) {
  .sluzk-home-citizens .wp-block-columns,
  .sluzk-home-services .wp-block-columns { flex-direction: column; gap: 12px !important; }
  .sluzk-home-citizens .wp-block-column,
  .sluzk-home-services .wp-block-column { flex-basis: 100% !important; }
}
@media (max-width: 480px) {
  .sluzk-home-hero h1 { font-size: 24px; }
  .sluzk-home-hero h2 { font-size: 16px; }
}

/* =========================================================================
   Fluent Forms — Slутск ЖКХ theme
   Applied via formSettings.layout.cssClassName = "sluzk-fluent-form" so it
   scopes cleanly and never leaks to unrelated plugin output.
   ========================================================================= */

.fluentform.fluentform,
.fluentform.ff-form-loading.fluentform {
  --sluzk-ff-gap: 18px;
  font: inherit;
  color: var(--sluzk-text);
  max-width: 720px;
}

.fluentform .ff-el-form-control,
.fluentform textarea.ff-el-form-control,
.fluentform input[type="text"].ff-el-form-control,
.fluentform input[type="email"].ff-el-form-control,
.fluentform input[type="url"].ff-el-form-control,
.fluentform input[type="tel"].ff-el-form-control {
  width: 100%;
  box-sizing: border-box;
  padding: 12px 14px;
  font-size: 16px;
  line-height: 1.35;
  color: var(--sluzk-text);
  background: var(--sluzk-bg);
  border: 1px solid var(--sluzk-border);
  border-radius: 6px;
  box-shadow: none;
  transition: border-color .15s, box-shadow .15s;
  font-family: inherit;
}
.fluentform textarea.ff-el-form-control { min-height: 160px; resize: vertical; }

.fluentform .ff-el-form-control:focus,
.fluentform textarea.ff-el-form-control:focus,
.fluentform input.ff-el-form-control:focus {
  outline: none;
  border-color: var(--sluzk-green);
  box-shadow: 0 0 0 3px rgba(46, 125, 50, .18);
}

.fluentform .ff-el-group { margin-bottom: var(--sluzk-ff-gap); }
.fluentform .ff-el-input--label label,
.fluentform label.ff-el-input--label {
  display: block;
  margin-bottom: 6px;
  font-size: 15px;
  font-weight: 500;
  color: var(--sluzk-text);
  line-height: 1.4;
}
.fluentform .ff-el-is-required.asterisk-right label:after {
  content: " *";
  color: var(--sluzk-accent);
  font-weight: 700;
}
.fluentform .ff-el-help-message,
.fluentform small.ff-el-help-message {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  color: var(--sluzk-text-muted);
  line-height: 1.35;
}

/* Errors */
.fluentform .ff-el-is-error .ff-el-form-control,
.fluentform .ff-el-is-error input,
.fluentform .ff-el-is-error textarea {
  border-color: #B91C1C;
  box-shadow: 0 0 0 3px rgba(185, 28, 28, .12);
}
.fluentform .error.text-danger,
.fluentform .ff-el-input--content .error {
  color: #B91C1C;
  font-size: 13px;
  margin-top: 4px;
}
.fluentform .ff-errors-in-stack {
  background: #FEF2F2;
  border: 1px solid #FCA5A5;
  color: #7F1D1D;
  padding: 12px 14px;
  border-radius: 6px;
  margin-bottom: 16px;
  font-size: 14px;
}

/* File upload */
.fluentform .ff_upload_btn,
.fluentform .ff-el-form-control[type="file"] + label,
.fluentform .ff-uploader-holder button {
  background: var(--sluzk-green-soft);
  color: var(--sluzk-green-dark);
  border: 1px dashed var(--sluzk-green);
  padding: 10px 16px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 500;
  transition: background .15s;
}
.fluentform .ff_upload_btn:hover { background: #DCEEDD; }
.fluentform .ff-uploader-holder .ff-uploaded-list { margin-top: 6px; font-size: 13px; }

/* Submit button — matches sluzk-* button system */
.fluentform .ff-el-group button.ff-btn,
.fluentform button.ff-btn-submit,
.fluentform input[type="submit"] {
  background: var(--sluzk-green);
  color: #fff;
  border: none;
  padding: 12px 28px;
  min-width: 200px;
  border-radius: 6px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, transform .05s;
  box-shadow: var(--sluzk-shadow-sm);
}
.fluentform button.ff-btn-submit:hover,
.fluentform input[type="submit"]:hover {
  background: var(--sluzk-green-dark);
}
.fluentform button.ff-btn-submit:active {
  transform: translateY(1px);
}
.fluentform button.ff-btn-submit:focus,
.fluentform input[type="submit"]:focus {
  outline: 3px solid rgba(46, 125, 50, .35);
  outline-offset: 2px;
}

/* Post-submit success message container */
.ff-message-success,
.fluentform + .ff-message-success {
  background: var(--sluzk-green-soft);
  color: var(--sluzk-green-dark);
  border-left: 4px solid var(--sluzk-green);
  padding: 16px 20px;
  border-radius: 6px;
  line-height: 1.55;
}
.ff-message-success p { margin: 0 0 8px; }
.ff-message-success p:last-child { margin-bottom: 0; }
.ff-message-success a { color: var(--sluzk-green-dark); text-decoration: underline; }

/* Mobile — full-width controls, larger tap targets */
@media (max-width: 640px) {
  .fluentform { max-width: 100%; }
  .fluentform .ff-el-form-control,
  .fluentform textarea.ff-el-form-control,
  .fluentform input.ff-el-form-control { font-size: 16px; padding: 14px; }
  .fluentform button.ff-btn-submit,
  .fluentform input[type="submit"] { width: 100%; min-width: 0; padding: 16px; }
  .fluentform .ff_upload_btn { width: 100%; text-align: center; }
}

/* =========================================================================
   Contact Form 7 — Slутск ЖКХ theme (v1.0.23 addition)
   Scoped to .wpcf7 to inherit the site design system without leaking to
   other plugins.
   ========================================================================= */

.wpcf7 {
  --sluzk-cf7-gap: 18px;
  font: inherit;
  color: var(--sluzk-text);
  max-width: 720px;
}

.wpcf7 .sluzk-form-row { margin-bottom: var(--sluzk-cf7-gap); }
.wpcf7 .sluzk-form-actions { margin-top: 24px; margin-bottom: 0; }

.wpcf7 label {
  display: block;
  font-size: 15px;
  font-weight: 500;
  color: var(--sluzk-text);
  line-height: 1.4;
  margin-bottom: 6px;
}
.wpcf7 label .req {
  color: var(--sluzk-accent);
  font-weight: 700;
  margin-left: 2px;
}
.wpcf7 small.sluzk-form-help {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  color: var(--sluzk-text-muted);
  line-height: 1.35;
}

/* Inputs, textareas, tel + email */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 12px 14px;
  font-size: 16px;
  line-height: 1.35;
  color: var(--sluzk-text);
  background: var(--sluzk-bg);
  border: 1px solid var(--sluzk-border);
  border-radius: 6px;
  box-shadow: none;
  font-family: inherit;
  transition: border-color .15s, box-shadow .15s;
  margin-top: 4px;
}
.wpcf7 textarea { min-height: 160px; resize: vertical; }

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="number"]:focus,
.wpcf7 textarea:focus {
  outline: none;
  border-color: var(--sluzk-green);
  box-shadow: 0 0 0 3px rgba(46, 125, 50, .18);
}

/* File upload input — style the native control */
.wpcf7 input[type="file"] {
  display: block;
  width: 100%;
  padding: 10px 12px;
  background: var(--sluzk-green-soft);
  color: var(--sluzk-green-dark);
  border: 1px dashed var(--sluzk-green);
  border-radius: 6px;
  cursor: pointer;
  margin-top: 4px;
  font-size: 14px;
}
.wpcf7 input[type="file"]::file-selector-button {
  background: var(--sluzk-green);
  color: #fff;
  border: 0;
  padding: 6px 14px;
  margin-right: 12px;
  border-radius: 4px;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  transition: background .15s;
}
.wpcf7 input[type="file"]::file-selector-button:hover {
  background: var(--sluzk-green-dark);
}

/* Submit button */
.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"] {
  background: var(--sluzk-green);
  color: #fff;
  border: none;
  padding: 12px 28px;
  min-width: 200px;
  border-radius: 6px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, transform .05s;
  box-shadow: var(--sluzk-shadow-sm);
  font-family: inherit;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 button[type="submit"]:hover { background: var(--sluzk-green-dark); }
.wpcf7 input[type="submit"]:active,
.wpcf7 button[type="submit"]:active { transform: translateY(1px); }
.wpcf7 input[type="submit"]:focus,
.wpcf7 button[type="submit"]:focus {
  outline: 3px solid rgba(46, 125, 50, .35);
  outline-offset: 2px;
}

/* Loader */
.wpcf7 .wpcf7-spinner {
  background-color: var(--sluzk-green);
}

/* Inline field-level validation errors */
.wpcf7 .wpcf7-not-valid {
  border-color: #B91C1C !important;
  box-shadow: 0 0 0 3px rgba(185, 28, 28, .12) !important;
}
.wpcf7 .wpcf7-not-valid-tip {
  color: #B91C1C;
  font-size: 13px;
  margin-top: 4px;
  display: block;
}

/* Response banner */
.wpcf7 form .wpcf7-response-output {
  margin: 16px 0 0;
  padding: 14px 16px;
  border-radius: 6px;
  font-size: 14px;
  line-height: 1.5;
  border-width: 1px;
  border-style: solid;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  background: #FEF2F2; border-color: #FCA5A5; color: #7F1D1D;
}
.wpcf7 form.sent .wpcf7-response-output {
  background: var(--sluzk-green-soft);
  border-color: var(--sluzk-green);
  color: var(--sluzk-green-dark);
  border-left-width: 4px;
}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
  background: #FEF2F2; border-color: #FCA5A5; color: #7F1D1D;
}

/* Mobile — full-width controls, larger tap targets */
@media (max-width: 640px) {
  .wpcf7 { max-width: 100%; }
  .wpcf7 input[type="text"],
  .wpcf7 input[type="email"],
  .wpcf7 input[type="tel"],
  .wpcf7 textarea { font-size: 16px; padding: 14px; }
  .wpcf7 input[type="submit"],
  .wpcf7 button[type="submit"] { width: 100%; min-width: 0; padding: 16px; }
  .wpcf7 input[type="file"] { padding: 12px 10px; }
}
