/*
Theme Name: my-theme
Author: Radmir
Version: 0.3
*/

/* DustBusters Shortcodes - Modern Forms Styles */
form.db-lead-form,
form.db-lead-form.db-quote,
form.db-lead-form.db-instant,
form.db-lead-form.db-schedule,
form.db-lead-form.db-building {
  border: 2px solid #e5e7eb !important;
  border-radius: 20px !important;
  padding: 32px !important;
  margin: 24px auto !important;
  display: block !important;
  background: linear-gradient(135deg, #ffffff 0%, #f8afc 100%) !important;
  max-width: 500px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important;
}
form.db-lead-form h3 {
  margin: 0 0 24px 0 !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  color: #111827 !important;
  text-align: center !important;
}
form.db-lead-form .db-row {
  margin: 16px 0 !important;
}
form.db-lead-form input[type="text"],
form.db-lead-form input[type="tel"],
form.db-lead-form input[type="date"],
form.db-lead-form input[required],
form.db-lead-form input:not([type="submit"]):not([type="button"]),
form.db-lead-form select {
  width: 100% !important;
  padding: 14px 16px !important;
  border: 2px solid #e5e7eb !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-sizing: border-box !important;
  font-size: 16px !important;
  color: #111827 !important;
  transition: all 0.3s ease !important;
  font-family: inherit !important;
  margin: 0 !important;
}
form.db-lead-form input:focus,
form.db-lead-form select:focus {
  outline: none !important;
  border-color: #3b82f6 !important;
  box-shadow: 0 0 0 3px rgba(59,130,246,0.1) !important;
  transform: translateY(-1px) !important;
}
form.db-lead-form button.db-btn,
form.db-lead-form .db-btn,
form.db-lead-form button[type="submit"],
button.db-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 12px auto !important;
  padding: 14px 28px !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%) !important;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  border: 0 !important;
  cursor: pointer !important;
  width: fit-content !important;
  box-shadow: 0 4px 12px rgba(245,158,11,0.3) !important;
  transition: all 0.3s ease !important;
}
form.db-lead-form button.db-btn:hover,
form.db-lead-form .db-btn:hover,
form.db-lead-form button[type="submit"]:hover,
button.db-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(245,158,11,0.5) !important;
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%) !important;
}
.db-cta-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 12px auto !important;
  padding: 14px 28px !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%) !important;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  width: fit-content !important;
  box-shadow: 0 4px 12px rgba(245,158,11,0.3) !important;
  transition: all 0.3s ease !important;
}
.db-cta-link:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(245,158,11,0.5) !important;
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%) !important;
}

/* Images center; text never inherits center from image containers */
.entry-content,
.entry-content p,
.entry-content li,
.entry-content ul,
.entry-content ol,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  text-align: left !important;
}

.entry-content::after { 
  content: "";
  display: block;
  clear: both;
}

.entry-content figure.db-inline-image p,
.entry-content figure.db-inline-image h2,
.entry-content figure.db-inline-image ul,
.entry-content figure.db-inline-image ol {
  text-align: left !important;
}

.entry-content figure.db-inline-image {  width: auto !important;
  margin: 32px auto !important;
  max-width: 800px !important;
  display: block !important;
}




/* === DB: Inline image centering — START === */
.entry-content .db-inline-image__media,div.db-inline-image__media {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 0.75rem !important;
}
.entry-content .db-inline-image__media > img{
  max-width: 100%;
  height: auto;
  float: none;
}
.entry-content figure.db-inline-image{
  text-align: initial;
}
/* === DB: Inline image centering — END === */



/* === Мобильная адаптация — START === */
@media (max-width: 768px) {
  /* Исправляем смещение экрана и убираем пустоту справа */
  html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  
  /* Контейнеры контента */
  .site-content,
  .content-area,
  main,
  .entry-content {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }
  
  /* Исправляем WordPress блоки */
  .wp-block-group,
  .wp-block-columns,
  .wp-block-column,
  .wp-container-content,
  .wp-block-group__inner-container {
    max-width: 100% !important;
    width: 100% !important;
    overflow-x: hidden !important;
  }
  
  /* Центрируем формы на мобильных */
  form.db-lead-form,
  form.db-lead-form.db-quote,
  form.db-lead-form.db-instant,
  form.db-lead-form.db-schedule,
  form.db-lead-form.db-building {
    max-width: 100% !important;
    width: calc(100% - 32px) !important;
    margin: 24px auto !important;
    padding: 24px 16px !important;
  }
  
  /* Адаптируем изображения на мобильных */
  .entry-content figure.db-inline-image {
    max-width: 100% !important;
    width: 100% !important;
    margin: 24px auto !important;
    padding: 0 !important;
  }
  
  .entry-content .db-inline-image__media {
    width: 100% !important;
    max-width: 100% !important;
  }
  
  .entry-content .db-inline-image__media > img {
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
  }
  
  /* Article и post контейнеры */
  article,
  .post,
  .entry {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }
  
  /* Изображения */
  img {
    max-width: 100% !important;
    height: auto !important;
  }
}
/* === Мобильная адаптация — END === */

/* === Entry Title & Hero === */
.entry-header { margin: 1.25rem auto 1rem; max-width: 900px; padding: 0 1rem; text-align: center; }
.entry-title  { font-size: clamp(1.2rem, 1.8vw, 1.5rem); line-height: 1.2; margin: 0 0 1rem; font-weight: 700; }

.entry-hero { margin: 0 auto 1.25rem !important; max-width: 900px !important; padding: 0 1rem !important; text-align: center !important; display: block !important; }
.entry-hero__img { display: inline-block !important; max-width: 100% !important; width: auto !important; height: auto !important; border-radius: 12px !important; margin: 0 auto !important; }

.entry-content { margin: 0 auto; max-width: 900px; padding: 0 1rem; }

/* Центровка и ограничение ширины для наших кастомных блоков/шорткодов */
.db-cta, .db-inline-image, figure.aligncenter, .wp-block-image figure, .wp-block-columns.is-layout-flex {
  margin-left: auto; margin-right: auto; max-width: 900px;
}

/* === Site Header & Breadcrumbs === */
.site-header {
	background: #fff;
	border-bottom: 1px solid #e5e7eb;
	padding: 1rem 0;
	margin-bottom: 1.5rem;
}

.site-header__inner {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 1rem;
}

.site-title {
	font-size: 0.95rem;
	font-weight: 600;
	color: #374151;
	margin: 0 0 0.5rem 0;
	line-height: 1.4;
}

.breadcrumbs {
	font-size: 0.875rem;
	color: #6b7280;
	margin: 0;
}

.breadcrumbs a {
	color: #3b82f6;
	text-decoration: none;
	transition: color 0.2s ease;
}

.breadcrumbs a:hover {
	color: #2563eb;
	text-decoration: underline;
}

.breadcrumbs__separator {
	margin: 0 0.5rem;
	color: #9ca3af;
}

.breadcrumbs__current {
	color: #111827;
	font-weight: 500;
}

/* === Site Main Content === */
.site-main {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 1rem;
}


/* === Additional centering for entry-hero figure === */
.entry-hero figure {
	display: block !important;
	text-align: center !important;
	margin: 0 auto !important;
}
.entry-hero figure img {
	display: inline-block !important;
	margin: 0 auto !important;
}

/* === Category Badge & Entry Meta === */
.entry-category { text-align: center; 
	margin: 0 auto 1rem !important;
	display: inline;
}

.entry-category a {
	display: inline;
	padding: 0.375rem 0.875rem;
	background: #10b981;
	color: #ffffff;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	text-decoration: none;
	border-radius: 4px;
	transition: background-color 0.2s ease;
}

.entry-category a:hover {
	background: #059669;
	color: #ffffff;
}

.entry-meta { text-align: center; 
	margin: 1rem auto 1rem !important;
	font-size: 0.875rem;
	color: #6b7280;
	line-height: 1.6;
}

.entry-meta__author { margin-right: 0.5rem; }
.entry-meta__date {
	display: inline;
}

.entry-meta__author-name {
	font-weight: 500;
	color: #374151;
}

.entry-meta time {
	color: #6b7280;
}


/* === Site Footer === */
.site-footer {
	background: #1e293b;
	color: #ffffff;
	margin-top: 4rem;
	padding: 3rem 0 1.5rem;
}

.site-footer__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1rem;
}

.site-footer__columns {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2.5rem;
	margin-bottom: 2rem;
}

.site-footer__column {
	display: flex;
	flex-direction: column;
}

.site-footer__title {
	font-size: 1.25rem;
	font-weight: 700;
	color: #ffffff;
	margin: 0 0 1rem 0;
	line-height: 1.3;
}

.site-footer__description {
	font-size: 0.875rem;
	color: #ffffff;
	line-height: 1.6;
	margin: 0 0 1.5rem 0;
	opacity: 0.9;
}

.site-footer__contact {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.site-footer__contact-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: #ffffff;
}

.site-footer__icon {
	font-size: 1rem;
	width: 20px;
	
}

.site-footer__link {
	color: #ffffff;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.site-footer__link:hover {
	opacity: 0.8;
}

.site-footer__text {
	color: #ffffff;
}

/* Service Areas Grid */
.site-footer__areas-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	line-height: 1.8;
}

.site-footer__area-badge {
	color: #ffffff;
	font-size: 0.875rem;
	line-height: 1.8;
}

.site-footer__area-badge:hover {
	opacity: 0.8;
}

/* Services List */
.site-footer__services-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.site-footer__services-list li {
	font-size: 0.875rem;
	color: #ffffff;
	line-height: 1.6;
	padding-left: 0;
}

/* Copyright */
.site-footer__copyright {
	margin-top: 2rem;
	padding-top: 1.5rem;
}

.site-footer__copyright-line {
	height: 1px;
	background: #475569;
	margin-bottom: 1rem;
}

.site-footer__copyright-text {
	
	font-size: 0.8125rem;
	color: #ffffff;
	margin: 0;
	opacity: 0.8;
}

/* Mobile Responsive Footer */
@media (max-width: 768px) {
	.site-footer {
		padding: 2rem 0 1rem;
	}
	
	.site-footer__columns {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	
	.site-footer__areas-grid {
		flex-direction: column;
		gap: 0.25rem;
	}
}

/* === Pagination Styles === */
.pagination {
	margin: 2rem auto;
	max-width: 900px;
	padding: 0 1rem;
	text-align: center;
}

.pagination .nav-links {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 0.875rem;
	border-radius: 8px;
	text-decoration: none;
	color: #374151;
	background: #f3f4f6;
	transition: all 0.2s ease;
	font-size: 0.875rem;
	font-weight: 500;
	min-width: 2.5rem;
}

.pagination .page-numbers:hover {
	background: #3b82f6;
	color: #ffffff;
	transform: translateY(-1px);
}

.pagination .page-numbers.current {
	background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
	color: #ffffff;
	cursor: default;
}

.pagination .page-numbers.dots {
	background: transparent;
	color: #6b7280;
	cursor: default;
}

.pagination .page-numbers.dots:hover {
	background: transparent;
	color: #6b7280;
	transform: none;
}

@media (max-width: 768px) {
	.pagination .nav-links {
		gap: 0.25rem;
	}
	
	.pagination .page-numbers {
		padding: 0.375rem 0.625rem;
		font-size: 0.8125rem;
		min-width: 2rem;
	}
}
